diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
index d9e4a7eab..584725a43 100644
--- src/bp-core/bp-core-functions.php
+++ src/bp-core/bp-core-functions.php
@@ -31,6 +31,62 @@ function bp_version() {
 		return buddypress()->version;
 	}
 
+/**
+ * Output a BuddyPress major version.
+ *
+ * @since 11.0.0
+ *
+ * @param string $version BuddyPress version.
+ */
+function bp_major_version( $version = '' ) {
+	echo bp_get_major_version( $version );
+}
+
+	/**
+	 * Return a BuddyPress major version.
+	 *
+	 * @since 11.0.0
+	 *
+	 * @param string $version BuddyPress version.
+	 * @return string The corresponding BuddyPress major version.
+	 */
+	function bp_get_major_version( $version = '' ) {
+		if ( ! $version ) {
+			$version = bp_get_version();
+		}
+
+		$last_wp_like_major_versions = '2.9';
+		$float_version               = (float) $version;
+
+		if ( 1 !== version_compare( $version, $last_wp_like_major_versions ) ) {
+			$major_version = (string) $float_version;
+		} else {
+			$major_version = (int) $float_version . '.0';
+		}
+
+		return $major_version;
+	}
+
+/**
+ * Output the BuddyPress version used for its first install.
+ *
+ * @since 11.0.0
+ */
+function bp_initial_version() {
+	echo bp_get_initial_version();
+}
+
+	/**
+	 * Return the BuddyPress version used for its first install.
+	 *
+	 * @since 11.0.0
+	 *
+	 * @return string The BuddyPress version used for its first install.
+	 */
+	function bp_get_initial_version() {
+		return bp_get_option( '_bp_initial_major_version', '0' );
+	}
+
 /**
  * Output the BuddyPress database version.
  *
diff --git src/bp-core/bp-core-options.php src/bp-core/bp-core-options.php
index e539a06ff..19070b22f 100644
--- src/bp-core/bp-core-options.php
+++ src/bp-core/bp-core-options.php
@@ -95,9 +95,6 @@ function bp_get_default_options() {
 		// Do not register the bp-default themes directory.
 		'_bp_retain_bp_default'                => false,
 
-		// Ignore deprecated code.
-		'_bp_ignore_deprecated_code'           => true,
-
 		/* Widgets **************************************************/
 		'widget_bp_core_login_widget'                => false,
 		'widget_bp_core_members_widget'              => false,
diff --git src/bp-core/bp-core-update.php src/bp-core/bp-core-update.php
index 2651cc0c6..59258439d 100644
--- src/bp-core/bp-core-update.php
+++ src/bp-core/bp-core-update.php
@@ -206,6 +206,9 @@ function bp_version_updater() {
 	// Install BP schema and activate only Activity and XProfile.
 	if ( bp_is_install() ) {
 
+		// Set the first BP major version the plugin was installed.
+		bp_update_option( '_bp_initial_major_version', bp_get_major_version() );
+
 		// Apply schema and set Activity and XProfile components as active.
 		bp_core_install( $default_components );
 		bp_update_option( 'bp-active-components', $default_components );
@@ -761,6 +764,7 @@ function bp_core_get_10_0_upgrade_email_schema( $emails ) {
  * @since 11.0.0
  */
 function bp_update_to_11_0() {
+	bp_delete_option( '_bp_ignore_deprecated_code' );
 
 	add_filter( 'bp_email_get_schema', 'bp_core_get_11_0_upgrade_email_schema' );
 
diff --git src/class-buddypress.php src/class-buddypress.php
index b291d956e..388c941a5 100644
--- src/class-buddypress.php
+++ src/class-buddypress.php
@@ -359,8 +359,9 @@ class BuddyPress {
 		 *
 		 * @since 2.0.0 Defaults to false always
 		 * @since 2.8.0 Defaults to true on upgrades, false for new installs.
+		 * @since 11.0.0 Defaults to true, unless the BP_IGNORE_DEPRECATED constant says otherwise.
 		 */
-		$this->load_deprecated = false;
+		$this->load_deprecated = defined( 'BP_IGNORE_DEPRECATED' ) ? ! BP_IGNORE_DEPRECATED : true;
 
 		/** Toolbar */
 
@@ -463,6 +464,15 @@ class BuddyPress {
 		 * @param string $value Email type taxonomy slug.
 		 */
 		$this->email_taxonomy_type = apply_filters( 'bp_email_tax_type', 'bp-email-type' );
+
+		/**
+		 * Are PHPUnit tests running?
+		 *
+		 * @since 11.0.0
+		 *
+		 * @param bool $value True if PHPUnit tests are running, false otherwise.
+		 */
+		$this->is_phpunit_running = function_exists( 'tests_add_filter' );
 	}
 
 	/**
@@ -484,11 +494,6 @@ class BuddyPress {
 		if ( ! defined( 'BP_DB_VERSION' ) ) {
 			define( 'BP_DB_VERSION', $this->db_version );
 		}
-
-		// Define if deprecated functions should be ignored.
-		if ( ! defined( 'BP_IGNORE_DEPRECATED' ) ) {
-			define( 'BP_IGNORE_DEPRECATED', true );
-		}
 	}
 
 	/**
@@ -535,30 +540,45 @@ class BuddyPress {
 		require $this->plugin_dir . 'bp-core/bp-core-rest-api.php';
 		require $this->plugin_dir . 'bp-core/bp-core-blocks.php';
 
-		// Maybe load deprecated functionality (this double negative is proof positive!).
-		if ( ! bp_get_option( '_bp_ignore_deprecated_code', ! $this->load_deprecated ) ) {
-			require $this->plugin_dir . 'bp-core/deprecated/1.2.php';
-			require $this->plugin_dir . 'bp-core/deprecated/1.5.php';
-			require $this->plugin_dir . 'bp-core/deprecated/1.6.php';
-			require $this->plugin_dir . 'bp-core/deprecated/1.7.php';
-			require $this->plugin_dir . 'bp-core/deprecated/1.9.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.1.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.2.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.3.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.4.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.5.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.6.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.7.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.8.php';
-			require $this->plugin_dir . 'bp-core/deprecated/2.9.php';
-			require $this->plugin_dir . 'bp-core/deprecated/3.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/4.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/6.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/7.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/8.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/9.0.php';
-			require $this->plugin_dir . 'bp-core/deprecated/10.0.php';
+		// Load deprecated functionality.
+		if ( $this->load_deprecated && ! $this->is_phpunit_running ) {
+			// Get the initial major version.
+			$first_major_version = bp_get_initial_version();
+
+			// List of versions containing deprecated functions.
+			$deprecated_versions = array(
+				'1.2',
+				'1.5',
+				'1.6',
+				'1.7',
+				'1.9',
+				'2.0',
+				'2.1',
+				'2.2',
+				'2.3',
+				'2.4',
+				'2.5',
+				'2.6',
+				'2.7',
+				'2.8',
+				'2.9',
+				'3.0',
+				'4.0',
+				'6.0',
+				'7.0',
+				'8.0',
+				'9.0',
+				'10.0',
+			);
+
+			foreach ( $deprecated_versions as $deprecated_version ) {
+				if ( 1 === version_compare( $first_major_version, $deprecated_version ) ) {
+					continue;
+				}
+
+				// Only load deprecated versions that are equals or higher than the first major version.
+				require $this->plugin_dir . sprintf( 'bp-core/deprecated/%s.php', $deprecated_version );
+			}
 		}
 
 		// Load wp-cli module if PHP 5.6+.
@@ -719,7 +739,7 @@ class BuddyPress {
 		if (
 			! in_array( $component, array( 'core', 'members' ), true ) &&
 			! bp_is_active( $component ) &&
-			! function_exists( 'tests_add_filter' )
+			! $this->is_phpunit_running
 		) {
 			return;
 		}
diff --git tests/phpunit/testcases/core/functions.php tests/phpunit/testcases/core/functions.php
index f3c20c1d8..dcbe0332f 100644
--- tests/phpunit/testcases/core/functions.php
+++ tests/phpunit/testcases/core/functions.php
@@ -872,6 +872,16 @@ class BP_Tests_Core_Functions extends BP_UnitTestCase {
 		$bp->active_components = $reset_bp_active_components;
 	}
 
+	/**
+	 * @ticket BP8687
+	 */
+	public function test_bp_get_major_version() {
+		$this->assertEquals( '2.6', bp_get_major_version( '2.6.1.1' ) );
+		$this->assertEquals( '3.0', bp_get_major_version( '3.1.0' ) );
+		$this->assertEquals( '9.0', bp_get_major_version( '9' ) );
+		$this->assertEquals( '10.0', bp_get_major_version( '10.0.0' ) );
+	}
+
 	public function add_newcomponent_page_title( $page_default_titles = array() ) {
 		return array_merge( $page_default_titles, array( 'newcomponent' => 'NewComponent' ) );
 	}
