diff --git a/core/modules/entity/config/schema/entity.data_types.schema.yml b/core/config/schema/core.entity.data_types.schema.yml
similarity index 100%
rename from core/modules/entity/config/schema/entity.data_types.schema.yml
rename to core/config/schema/core.entity.data_types.schema.yml
diff --git a/core/modules/entity/config/schema/entity.schema.yml b/core/config/schema/core.entity.schema.yml
similarity index 96%
rename from core/modules/entity/config/schema/entity.schema.yml
rename to core/config/schema/core.entity.schema.yml
index a924badd6cc53bb8f7ca7bb16d3800adff628cbc..e5db26db74fecdeda7fc822fe9e06e37de39caac 100644
--- a/core/modules/entity/config/schema/entity.schema.yml
+++ b/core/config/schema/core.entity.schema.yml
@@ -1,6 +1,6 @@
 # Schema for Configuration files of the entity module.
 
-entity.view_mode.*.*:
+core.entity_view_mode.*.*:
   type: mapping
   label: 'Entity view mode settings'
   mapping:
@@ -29,7 +29,7 @@ entity.view_mode.*.*:
       type: config_dependencies
       label: 'Dependencies'
 
-entity.form_mode.*.*:
+core.entity_form_mode.*.*:
   type: config_entity
   label: 'Entity form mode settings'
   mapping:
@@ -47,7 +47,7 @@ entity.form_mode.*.*:
       label: 'Cache'
 
 # Overview configuration information for view mode or form mode displays.
-entity.view_display.*.*.*:
+core.entity_view_display.*.*.*:
   type: config_entity
   label: 'Entity display'
   mapping:
@@ -79,7 +79,7 @@ entity.view_display.*.*.*:
           label: 'Value'
 
 # Overview configuration information for form mode displays.
-entity.form_display.*.*.*:
+core.entity_form_display.*.*.*:
   type: config_entity
   label: 'Entity form display'
   mapping:
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
index 9916615b8a5ba3d8d2d20ba5220fff4d137a2b99..3a6bbf41a15c17047221378c3b6b8d5f89cf3db5 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
@@ -250,7 +250,7 @@ public function toArray() {
     $id_key = $this->getEntityType()->getKey('id');
     foreach (array_keys($definition['mapping']) as $name) {
       // Special handling for IDs so that computed compound IDs work.
-      // @see \Drupal\entity\EntityDisplayBase::id()
+      // @see \Drupal\Core\Entity\EntityDisplayBase::id()
       if ($name == $id_key) {
         $properties[$name] = $this->id();
       }
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
index de398da99cc6196663179a852f51da3be629c039..9cdd75fc3faa89887a2dd68492a6fb01c8827748 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\Core\Config\Entity;
 
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Entity\EntityStorageInterface;
 
 /**
@@ -17,6 +19,48 @@
  */
 abstract class ConfigEntityBundleBase extends ConfigEntityBase {
 
+  /**
+   * Renames displays when a bundle is renamed.
+   */
+  protected function renameDisplays() {
+    // Rename entity displays.
+    if ($this->getOriginalId() !== $this->id()) {
+      foreach ($this->loadDisplays('entity_view_display') as $display) {
+        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $display->mode;
+        $display->set('id', $new_id);
+        $display->bundle = $this->id();
+        $display->save();
+      }
+    }
+
+    // Rename entity form displays.
+    if ($this->getOriginalId() !== $this->id()) {
+      foreach ($this->loadDisplays('entity_form_display') as $form_display) {
+        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $form_display->mode;
+        $form_display->set('id', $new_id);
+        $form_display->bundle = $this->id();
+        $form_display->save();
+      }
+    }
+  }
+
+  /**
+   * Deletes display if a bundle is deleted.
+   */
+  protected function deleteDisplays() {
+    // Remove entity displays of the deleted bundle.
+    if ($displays = $this->loadDisplays('entity_view_display')) {
+      $storage = $this->entityManager()->getStorage('entity_view_display');
+      $storage->delete($displays);
+    }
+
+    // Remove entity form displays of the deleted bundle.
+    if ($displays = $this->loadDisplays('entity_form_display')) {
+      $storage = $this->entityManager()->getStorage('entity_form_display');
+      $storage->delete($displays);
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -27,6 +71,7 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
       entity_invoke_bundle_hook('create', $this->getEntityType()->getBundleOf(), $this->id());
     }
     elseif ($this->getOriginalId() != $this->id()) {
+      $this->renameDisplays();
       entity_invoke_bundle_hook('rename', $this->getEntityType()->getBundleOf(), $this->getOriginalId(), $this->id());
     }
   }
@@ -38,8 +83,29 @@ public static function postDelete(EntityStorageInterface $storage, array $entiti
     parent::postDelete($storage, $entities);
 
     foreach ($entities as $entity) {
+      $entity->deleteDisplays();
       entity_invoke_bundle_hook('delete', $entity->getEntityType()->getBundleOf(), $entity->id());
     }
   }
 
+  /**
+   * Returns view or form displays for this bundle.
+   *
+   * @param string $entity_type_id
+   *   The entity type ID of the display type to load.
+   *
+   * @return \Drupal\Core\Entity\Display\EntityDisplayInterface[]
+   *   A list of matching displays.
+   */
+  protected function loadDisplays($entity_type_id) {
+    $ids = \Drupal::entityQuery($entity_type_id)
+      ->condition('id', $this->getEntityType()->getBundleOf() . '.' . $this->getOriginalId() . '.', 'STARTS_WITH')
+      ->execute();
+    if ($ids) {
+      $storage = $this->entityManager()->getStorage($entity_type_id);
+      return $storage->loadMultiple($ids);
+    }
+    return array();
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Entity/ContentEntityForm.php b/core/lib/Drupal/Core/Entity/ContentEntityForm.php
index 5a1244e782cbe4ad9e9e1bf85d54522f3570cd68..87883bd036e03765fb3b210b79174c442d2bb0f9 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityForm.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityForm.php
@@ -8,8 +8,8 @@
 namespace Drupal\Core\Entity;
 
 use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\entity\Entity\EntityFormDisplay;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
diff --git a/core/modules/entity/src/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
similarity index 98%
rename from core/modules/entity/src/Entity/EntityFormDisplay.php
rename to core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
index cbaa689604f774b136b77a75f64d0dd13b8fd652..6339c184309d7e4d383253b55c2f7bfc9d2db162 100644
--- a/core/modules/entity/src/Entity/EntityFormDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
@@ -2,15 +2,15 @@
 
 /**
  * @file
- * Contains \Drupal\entity\Entity\EntityFormDisplay.
+ * Contains \Drupal\Core\Entity\Entity\EntityFormDisplay.
  */
 
-namespace Drupal\entity\Entity;
+namespace Drupal\Core\Entity\Entity;
 
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
+use Drupal\Core\Entity\EntityDisplayBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\entity\EntityDisplayBase;
 
 /**
  * Configuration entity that contains widget options for all components of a
@@ -19,7 +19,6 @@
  * @ConfigEntityType(
  *   id = "entity_form_display",
  *   label = @Translation("Entity form display"),
- *   config_prefix = "form_display",
  *   entity_keys = {
  *     "id" = "id",
  *     "status" = "status"
diff --git a/core/modules/entity/src/Entity/EntityFormMode.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormMode.php
similarity index 60%
rename from core/modules/entity/src/Entity/EntityFormMode.php
rename to core/lib/Drupal/Core/Entity/Entity/EntityFormMode.php
index 7af8e0605f66cae57b31e1e750e3f7b145aac640..7f8371ad2492cf932f29a38e8b91eecce36c2b98 100644
--- a/core/modules/entity/src/Entity/EntityFormMode.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormMode.php
@@ -2,16 +2,16 @@
 
 /**
  * @file
- * Contains \Drupal\entity\Entity\EntityFormMode.
+ * Contains \Drupal\Core\Entity\Entity\EntityFormMode.
  */
 
-namespace Drupal\entity\Entity;
+namespace Drupal\Core\Entity\Entity;
 
-use Drupal\entity\EntityDisplayModeBase;
-use Drupal\entity\EntityFormModeInterface;
+use Drupal\Core\Entity\EntityDisplayModeBase;
+use Drupal\Core\Entity\EntityFormModeInterface;
 
 /**
- * Defines the form mode configuration entity class.
+ * Defines the entity form mode configuration entity class.
  *
  * Form modes allow entity forms to be displayed differently depending on the
  * context. For instance, the user entity form can be displayed with a set of
@@ -26,27 +26,13 @@
  *
  * @see \Drupal\Core\Entity\EntityManagerInterface::getAllFormModes()
  * @see \Drupal\Core\Entity\EntityManagerInterface::getFormModes()
- * @see hook_entity_form_mode_info_alter()
  *
  * @ConfigEntityType(
- *   id = "form_mode",
+ *   id = "entity_form_mode",
  *   label = @Translation("Form mode"),
- *   handlers = {
- *     "list_builder" = "Drupal\entity\EntityFormModeListBuilder",
- *     "form" = {
- *       "add" = "Drupal\entity\Form\EntityFormModeAddForm",
- *       "edit" = "Drupal\entity\Form\EntityDisplayModeEditForm",
- *       "delete" = "Drupal\entity\Form\EntityDisplayModeDeleteForm"
- *     }
- *   },
- *   admin_permission = "administer display modes",
  *   entity_keys = {
  *     "id" = "id",
  *     "label" = "label"
- *   },
- *   links = {
- *     "delete-form" = "entity.form_mode.delete_form",
- *     "edit-form" = "entity.form_mode.edit_form"
  *   }
  * )
  */
diff --git a/core/modules/entity/src/Entity/EntityViewDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
similarity index 96%
rename from core/modules/entity/src/Entity/EntityViewDisplay.php
rename to core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
index 1e4b827b19fb7809753de588dc2cc4ed6856f3e0..57041e92a1b05d05e5c2d5264a02fb6fcde86e1f 100644
--- a/core/modules/entity/src/Entity/EntityViewDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
@@ -2,15 +2,15 @@
 
 /**
  * @file
- * Contains \Drupal\entity\Entity\EntityViewDisplay.
+ * Contains \Drupal\Core\Entity\Entity\EntityViewDisplay.
  */
 
-namespace Drupal\entity\Entity;
+namespace Drupal\Core\Entity\Entity;
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Entity\ContentEntityInterface;
-use Drupal\entity\EntityDisplayBase;
+use Drupal\Core\Entity\EntityDisplayBase;
 
 /**
  * Configuration entity that contains display options for all components of a
@@ -19,10 +19,6 @@
  * @ConfigEntityType(
  *   id = "entity_view_display",
  *   label = @Translation("Entity view display"),
- *   handlers = {
- *     "storage" = "Drupal\Core\Config\Entity\ConfigEntityStorage"
- *   },
- *   config_prefix = "view_display",
  *   entity_keys = {
  *     "id" = "id",
  *     "status" = "status"
diff --git a/core/modules/entity/src/Entity/EntityViewMode.php b/core/lib/Drupal/Core/Entity/Entity/EntityViewMode.php
similarity index 63%
rename from core/modules/entity/src/Entity/EntityViewMode.php
rename to core/lib/Drupal/Core/Entity/Entity/EntityViewMode.php
index 67e27f4f4b8f266663812a9072eddc43da5acbc0..80a38758a8833ffba5ed37b86f69ecd0bddc8cf9 100644
--- a/core/modules/entity/src/Entity/EntityViewMode.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityViewMode.php
@@ -2,16 +2,16 @@
 
 /**
  * @file
- * Contains \Drupal\entity\Entity\EntityViewMode.
+ * Contains \Drupal\Core\Entity\Entity\EntityViewMode.
  */
 
-namespace Drupal\entity\Entity;
+namespace Drupal\Core\Entity\Entity;
 
-use Drupal\entity\EntityDisplayModeBase;
-use Drupal\entity\EntityViewModeInterface;
+use Drupal\Core\Entity\EntityDisplayModeBase;
+use Drupal\Core\Entity\EntityViewModeInterface;
 
 /**
- * Defines the view mode configuration entity class.
+ * Defines the entity view mode configuration entity class.
  *
  * View modes let entities be displayed differently depending on the context.
  * For instance, a node can be displayed differently on its own page ('full'
@@ -30,24 +30,11 @@
  * @see hook_entity_view_mode_info_alter()
  *
  * @ConfigEntityType(
- *   id = "view_mode",
+ *   id = "entity_view_mode",
  *   label = @Translation("View mode"),
- *   handlers = {
- *     "list_builder" = "Drupal\entity\EntityDisplayModeListBuilder",
- *     "form" = {
- *       "add" = "Drupal\entity\Form\EntityDisplayModeAddForm",
- *       "edit" = "Drupal\entity\Form\EntityDisplayModeEditForm",
- *       "delete" = "Drupal\entity\Form\EntityDisplayModeDeleteForm"
- *     }
- *   },
- *   admin_permission = "administer display modes",
  *   entity_keys = {
  *     "id" = "id",
  *     "label" = "label"
- *   },
- *   links = {
- *     "delete-form" = "entity.view_mode.delete_form",
- *     "edit-form" = "entity.view_mode.edit_form"
  *   }
  * )
  */
diff --git a/core/modules/entity/src/EntityDisplayBase.php b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
similarity index 97%
rename from core/modules/entity/src/EntityDisplayBase.php
rename to core/lib/Drupal/Core/Entity/EntityDisplayBase.php
index 8b108a218f392d53751caecb2082745dd566b92d..3710507a59f0222d6a774ffc61704c4a5d660dae 100644
--- a/core/modules/entity/src/EntityDisplayBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
@@ -2,13 +2,12 @@
 
 /**
  * @file
- * Contains \Drupal\entity\EntityDisplayBase.
+ * Contains \Drupal\Core\Entity\EntityDisplayBase.
  */
 
-namespace Drupal\entity;
+namespace Drupal\Core\Entity;
 
 use Drupal\Core\Config\Entity\ConfigEntityBase;
-use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Entity\Display\EntityDisplayInterface;
 use Drupal\field\Entity\FieldInstanceConfig;
@@ -186,7 +185,7 @@ public function calculateDependencies() {
     }
     // Depend on configured modes.
     if ($this->mode != 'default') {
-      $mode_entity = \Drupal::entityManager()->getStorage($this->displayContext . '_mode')->load($target_entity_type->id() . '.' . $this->mode);
+      $mode_entity = \Drupal::entityManager()->getStorage('entity_' . $this->displayContext . '_mode')->load($target_entity_type->id() . '.' . $this->mode);
       $this->addDependency('entity', $mode_entity->getConfigDependencyName());
     }
     return $this->dependencies;
diff --git a/core/modules/entity/src/EntityDisplayModeBase.php b/core/lib/Drupal/Core/Entity/EntityDisplayModeBase.php
similarity index 91%
rename from core/modules/entity/src/EntityDisplayModeBase.php
rename to core/lib/Drupal/Core/Entity/EntityDisplayModeBase.php
index 4dadc56bf9a6c7b1086244d0a3358252287e1a17..01fefaf85a0f3a5865882cfe568382e640db82d1 100644
--- a/core/modules/entity/src/EntityDisplayModeBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayModeBase.php
@@ -2,14 +2,13 @@
 
 /**
  * @file
- * Contains \Drupal\entity\EntityDisplayModeBase.
+ * Contains \Drupal\Core\Entity\EntityDisplayModeBase.
  */
 
-namespace Drupal\entity;
+namespace Drupal\Core\Entity;
 
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
-use Drupal\Core\Entity\EntityStorageInterface;
 
 /**
  * Base class for config entity types that hold settings for form and view modes.
@@ -63,8 +62,8 @@ abstract class EntityDisplayModeBase extends ConfigEntityBase implements EntityD
    * {@inheritdoc}
    */
   public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) {
-    /** @var \Drupal\entity\EntityDisplayModeInterface $a */
-    /** @var \Drupal\entity\EntityDisplayModeInterface $b */
+    /** @var \Drupal\Core\Entity\EntityDisplayModeInterface $a */
+    /** @var \Drupal\Core\Entity\EntityDisplayModeInterface $b */
     // Sort by the type of entity the view mode is used for.
     $a_type = $a->getTargetType();
     $b_type = $b->getTargetType();
diff --git a/core/modules/entity/src/EntityDisplayModeInterface.php b/core/lib/Drupal/Core/Entity/EntityDisplayModeInterface.php
similarity index 81%
rename from core/modules/entity/src/EntityDisplayModeInterface.php
rename to core/lib/Drupal/Core/Entity/EntityDisplayModeInterface.php
index 178df61eecd89680e0663ff49dedec797bbb95a3..bf21c93f2da32965e764a27ca5009755591eae5c 100644
--- a/core/modules/entity/src/EntityDisplayModeInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayModeInterface.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\entity\EntityDisplayModeInterface.
+ * Contains \Drupal\Core\Entity\EntityDisplayModeInterface.
  */
 
-namespace Drupal\entity;
+namespace Drupal\Core\Entity;
 
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
 
diff --git a/core/modules/entity/src/EntityFormModeInterface.php b/core/lib/Drupal/Core/Entity/EntityFormModeInterface.php
similarity index 66%
rename from core/modules/entity/src/EntityFormModeInterface.php
rename to core/lib/Drupal/Core/Entity/EntityFormModeInterface.php
index e298e114762a046f4d7bd0e967917bcabe222384..6fdecee5c653bae7c5c431a848dd5f01bc51fbdc 100644
--- a/core/modules/entity/src/EntityFormModeInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityFormModeInterface.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\entity\EntityFormModeInterface.
+ * Contains \Drupal\Core\Entity\EntityFormModeInterface.
  */
 
-namespace Drupal\entity;
+namespace Drupal\Core\Entity;
 
 /**
  * Provides an interface defining an entity form mode entity type.
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index 6b54aaf998ff822b321971668330b2cfee13a406..26eac4eda97eef7f7de806bb1b6b0e619262144e 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -832,13 +832,14 @@ public function getFormModes($entity_type_id) {
   protected function getAllDisplayModesByEntityType($display_type) {
     if (!isset($this->displayModeInfo[$display_type])) {
       $key = 'entity_' . $display_type . '_info';
+      $entity_type_id = 'entity_' . $display_type;
       $langcode = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_INTERFACE)->id;
       if ($cache = $this->cacheBackend->get("$key:$langcode")) {
         $this->displayModeInfo[$display_type] = $cache->data;
       }
       else {
         $this->displayModeInfo[$display_type] = array();
-        foreach ($this->getStorage($display_type)->loadMultiple() as $display_mode) {
+        foreach ($this->getStorage($entity_type_id)->loadMultiple() as $display_mode) {
           list($display_mode_entity_type, $display_mode_name) = explode('.', $display_mode->id(), 2);
           $this->displayModeInfo[$display_type][$display_mode_entity_type][$display_mode_name] = $display_mode->toArray();
         }
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
index 802aa5d425dae94de7f079f82f43970f75ca489b..cd27e7dd0b7d900fc9db0b8d050f2423be4d0532 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
@@ -10,14 +10,13 @@
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
-use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Field\FieldItemInterface;
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\Core\Render\Element;
-use Drupal\entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
diff --git a/core/modules/entity/src/EntityViewModeInterface.php b/core/lib/Drupal/Core/Entity/EntityViewModeInterface.php
similarity index 66%
rename from core/modules/entity/src/EntityViewModeInterface.php
rename to core/lib/Drupal/Core/Entity/EntityViewModeInterface.php
index 7ff4e51c2ed7fd1a3fc5f32b8de2055e2aa4194b..f2bfe7ce763b784fe57dec8611dd8c213765cfaf 100644
--- a/core/modules/entity/src/EntityViewModeInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewModeInterface.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\entity\EntityViewModeInterface.
+ * Contains \Drupal\Core\Entity\EntityViewModeInterface.
  */
 
-namespace Drupal\entity;
+namespace Drupal\Core\Entity;
 
 /**
  * Provides an interface defining an entity view mode entity type.
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandler.php b/core/lib/Drupal/Core/Extension/ModuleHandler.php
index cb65449c1b86d299ecd4ddfcaafb6a236f16e003..aa36d42246b09c7b57b06ea73d1fd155109dd85b 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandler.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandler.php
@@ -942,7 +942,19 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) {
     // the module already, which means that it might be loaded, but not
     // necessarily installed.
     $schema_store = \Drupal::keyValue('system.schema');
+    $entity_manager = \Drupal::entityManager();
     foreach ($module_list as $module) {
+
+      // Clean up all entity bundles (including field instances) of every entity
+      // type provided by the module that is being uninstalled.
+      foreach ($entity_manager->getDefinitions() as $entity_type_id => $entity_type) {
+        if ($entity_type->getProvider() == $module) {
+          foreach (array_keys($entity_manager->getBundleInfo($entity_type_id)) as $bundle) {
+            entity_invoke_bundle_hook('delete', $entity_type_id, $bundle);
+          }
+        }
+      }
+
       // Allow modules to react prior to the uninstallation of a module.
       $this->invokeAll('module_preuninstall', array($module));
 
@@ -954,7 +966,7 @@ public function uninstall(array $module_list, $uninstall_dependents = TRUE) {
       \Drupal::service('config.manager')->uninstall('module', $module);
 
       // Remove any entity schemas belonging to the module.
-      $entity_manager = \Drupal::entityManager();
+
       $schema = \Drupal::database()->schema();
       foreach ($entity_manager->getDefinitions() as $entity_type) {
         if ($entity_type->getProvider() == $module) {
diff --git a/core/modules/aggregator/config/install/entity.view_mode.aggregator_item.summary.yml b/core/modules/aggregator/config/install/core.entity_view_mode.aggregator_item.summary.yml
similarity index 100%
rename from core/modules/aggregator/config/install/entity.view_mode.aggregator_item.summary.yml
rename to core/modules/aggregator/config/install/core.entity_view_mode.aggregator_item.summary.yml
diff --git a/core/modules/block_content/config/install/entity.view_mode.block_content.full.yml b/core/modules/block_content/config/install/core.entity_view_mode.block_content.full.yml
similarity index 100%
rename from core/modules/block_content/config/install/entity.view_mode.block_content.full.yml
rename to core/modules/block_content/config/install/core.entity_view_mode.block_content.full.yml
diff --git a/core/modules/block_content/src/Tests/BlockContentCreationTest.php b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
index e659088e0e769190536fb473eebe16332144cbdc..e60b7a46dc9d6fab0a15e9fb46e7f0bcb755fc0a 100644
--- a/core/modules/block_content/src/Tests/BlockContentCreationTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
@@ -24,7 +24,7 @@ class BlockContentCreationTest extends BlockContentTestBase {
    *
    * @var array
    */
-  public static $modules = array('block_content_test', 'dblog');
+  public static $modules = array('block_content_test', 'dblog', 'entity');
 
   /**
    * Sets the test up.
diff --git a/core/modules/book/config/install/entity.view_mode.node.print.yml b/core/modules/book/config/install/core.entity_view_mode.node.print.yml
similarity index 100%
rename from core/modules/book/config/install/entity.view_mode.node.print.yml
rename to core/modules/book/config/install/core.entity_view_mode.node.print.yml
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index f9fae08887b6f1f97abc9c99646d7193dd06ef21..46a41f5257eadc39d5e6c150a8407441be461caf 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -20,7 +20,7 @@
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Render\Element;
diff --git a/core/modules/comment/config/install/entity.view_mode.comment.full.yml b/core/modules/comment/config/install/core.entity_view_mode.comment.full.yml
similarity index 100%
rename from core/modules/comment/config/install/entity.view_mode.comment.full.yml
rename to core/modules/comment/config/install/core.entity_view_mode.comment.full.yml
diff --git a/core/modules/comment/src/CommentViewBuilder.php b/core/modules/comment/src/CommentViewBuilder.php
index 6d4b2d18a5bc628d584c705015d5d23e7debef39..fc8da5e984cef413b643ab23d2f2f1745099bc18 100644
--- a/core/modules/comment/src/CommentViewBuilder.php
+++ b/core/modules/comment/src/CommentViewBuilder.php
@@ -14,7 +14,7 @@
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Entity\EntityViewBuilder;
-use Drupal\entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index 1ecb656eb842c2fec25c4ef33578fd991fff635c..2a45c4a4591c2f745f20089f889217278bc014a8 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\datetime\Tests;
 
-use Drupal\entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\simpletest\WebTestBase;
 use Drupal\Core\Datetime\DrupalDateTime;
 
diff --git a/core/modules/entity/entity.info.yml b/core/modules/entity/entity.info.yml
index 770aec543a576c916f3d47c63d16335fb9722a81..bb9f14f38eb8cc31ff5290836ebfafbddc841383 100644
--- a/core/modules/entity/entity.info.yml
+++ b/core/modules/entity/entity.info.yml
@@ -4,4 +4,3 @@ description: 'Generic entity functionality.'
 package: Core
 version: VERSION
 core: 8.x
-required: true
diff --git a/core/modules/entity/entity.links.action.yml b/core/modules/entity/entity.links.action.yml
index 85dd31fe8d0eca4d218a71b113abdc222b4bf309..d1917919f4dc072396c851d02d80f2fc093f1b9d 100644
--- a/core/modules/entity/entity.links.action.yml
+++ b/core/modules/entity/entity.links.action.yml
@@ -1,13 +1,13 @@
-entity.view_mode_add:
-  route_name: entity.view_mode_add
+entity.entity_view_mode_add:
+  route_name: entity.entity_view_mode_add
   title: 'Add new view mode'
   weight: 1
   appears_on:
-    - entity.view_mode_list
+    - entity.entity_view_mode_list
 
-entity.form_mode_add:
-  route_name: entity.form_mode_add
+entity.entity_form_mode_add:
+  route_name: entity.entity_form_mode_add
   title: 'Add new form mode'
   weight: 1
   appears_on:
-    - entity.form_mode_list
+    - entity.entity_form_mode_list
diff --git a/core/modules/entity/entity.links.menu.yml b/core/modules/entity/entity.links.menu.yml
index 66c67c644c687992a5c76e988b53858e7a8f64d1..9a7b6a4be0a5d4d75af51ed2d3342063df7ff59c 100644
--- a/core/modules/entity/entity.links.menu.yml
+++ b/core/modules/entity/entity.links.menu.yml
@@ -3,13 +3,13 @@ entity.display_mode:
   description: 'Configure what displays are available for your content and forms.'
   route_name: entity.display_mode
   parent: system.admin_structure
-entity.view_mode_list:
+entity.entity_view_mode_list:
   title: 'View modes'
   description: 'Manage custom view modes.'
-  route_name: entity.view_mode_list
+  route_name: entity.entity_view_mode_list
   parent: entity.display_mode
-entity.form_mode_list:
+entity.entity_form_mode_list:
   title: 'Form modes'
   description: 'Manage custom form modes.'
-  route_name: entity.form_mode_list
+  route_name: entity.entity_form_mode_list
   parent: entity.display_mode
diff --git a/core/modules/entity/entity.links.task.yml b/core/modules/entity/entity.links.task.yml
index ebda709530f4edf2df5e4dc571a78903200c03f2..fbb5f9b36dd56271593a0db510ec38a1b88c597f 100644
--- a/core/modules/entity/entity.links.task.yml
+++ b/core/modules/entity/entity.links.task.yml
@@ -1,19 +1,19 @@
-entity.view_mode.edit_form:
+entity.entity_view_mode.edit_form:
   title: 'Edit'
-  route_name: entity.view_mode.edit_form
-  base_route: entity.view_mode.edit_form
+  route_name: entity.entity_view_mode.edit_form
+  base_route: entity.entity_view_mode.edit_form
 
-entity.form_mode.edit_form:
+entity.entity_form_mode.edit_form:
   title: 'Edit'
-  route_name: entity.form_mode.edit_form
-  base_route: entity.form_mode.edit_form
+  route_name: entity.entity_form_mode.edit_form
+  base_route: entity.entity_form_mode.edit_form
 
-entity.view_mode_list:
+entity.entity_view_mode_list:
   title: List
-  route_name: entity.view_mode_list
-  base_route: entity.view_mode_list
+  route_name: entity.entity_view_mode_list
+  base_route: entity.entity_view_mode_list
 
-entity.form_mode_list:
+entity.entity_form_mode_list:
   title: List
-  route_name: entity.form_mode_list
-  base_route: entity.form_mode_list
+  route_name: entity.entity_form_mode_list
+  base_route: entity.entity_form_mode_list
diff --git a/core/modules/entity/entity.module b/core/modules/entity/entity.module
index d3590a1fc7568497dc33d1c5d39aab6b1e34dd2c..b70d4e3a0ef5b92b6dfa02f4ff03f5d9eb6a3fe3 100644
--- a/core/modules/entity/entity.module
+++ b/core/modules/entity/entity.module
@@ -8,7 +8,6 @@
  * entity system.
  */
 
-use Drupal\Core\Config\Entity\ConfigEntityStorage;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
@@ -26,9 +25,9 @@ function entity_help($route_name, RouteMatchInterface $route_match) {
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Managing view modes') . '</dt>';
-      $output .= '<dd>' . t('Each content entity can have various "modes" for viewing. For instance, a content item could be viewed in full content mode on its own page, teaser mode in a list, or RSS mode in a feed. You can create, edit the names of, and delete view modes on the <a href="!view-modes">View modes page</a>. Once a view mode has been set up, you can choose and format fields for the view mode within each entity sub-type on the Manage display page. See the <a href="!field_ui">Field UI module help page</a> for more information.', array('!view-modes' => \Drupal::url('entity.view_mode_list'), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
+      $output .= '<dd>' . t('Each content entity can have various "modes" for viewing. For instance, a content item could be viewed in full content mode on its own page, teaser mode in a list, or RSS mode in a feed. You can create, edit the names of, and delete view modes on the <a href="!view-modes">View modes page</a>. Once a view mode has been set up, you can choose and format fields for the view mode within each entity sub-type on the Manage display page. See the <a href="!field_ui">Field UI module help page</a> for more information.', array('!view-modes' => \Drupal::url('entity.entity_view_mode_list'), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
       $output .= '<dt>' . t('Managing form modes') . '</dt>';
-      $output .= '<dd>' . t('Each content entity can have various editing forms appropriate for different situations, which are known as "form modes". For instance, you might want to define a quick editing mode that allows users to edit the most important fields, and a full editing mode that gives access to all the fields. You can create, edit the names of, and delete form modes on the <a href="!form-modes">Manage custom form modes page</a>. Once a form mode has been set up, you can choose which fields are available on that form within each entity sub-type on the Manage form display page. See the <a href="!field_ui">Field UI module help page</a> for more information.', array('!form-modes' => \Drupal::url('entity.form_mode_list'), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
+      $output .= '<dd>' . t('Each content entity can have various editing forms appropriate for different situations, which are known as "form modes". For instance, you might want to define a quick editing mode that allows users to edit the most important fields, and a full editing mode that gives access to all the fields. You can create, edit the names of, and delete form modes on the <a href="!form-modes">Manage custom form modes page</a>. Once a form mode has been set up, you can choose which fields are available on that form within each entity sub-type on the Manage form display page. See the <a href="!field_ui">Field UI module help page</a> for more information.', array('!form-modes' => \Drupal::url('entity.entity_form_mode_list'), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
       $output .= '</dl>';
       return $output;
   }
@@ -46,70 +45,26 @@ function entity_permission() {
 }
 
 /**
- * Implements hook_entity_bundle_rename().
+ * Implements hook_entity_type_alter().
  */
-function entity_entity_bundle_rename($entity_type_id, $bundle_old, $bundle_new) {
-  // Rename entity displays.
-  $entity_type = \Drupal::entityManager()->getDefinition('entity_view_display');
-  if ($bundle_old !== $bundle_new) {
-    $ids = \Drupal::configFactory()->listAll('entity.view_display.' . $entity_type_id . '.' . $bundle_old . '.');
-    foreach ($ids as $id) {
-      $id = ConfigEntityStorage::getIDFromConfigName($id, $entity_type->getConfigPrefix());
-      $display = entity_load('entity_view_display', $id);
-      $new_id = $entity_type_id . '.' . $bundle_new . '.' . $display->mode;
-      $display->set('id', $new_id);
-      $display->bundle = $bundle_new;
-      $display->save();
-    }
-  }
+function entity_entity_type_alter(array &$entity_types) {
+  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
+  $form_mode = $entity_types['entity_form_mode'];
+  $form_mode->setListBuilderClass('Drupal\entity\EntityFormModeListBuilder');
+  $form_mode->setFormClass('add', 'Drupal\entity\Form\EntityFormModeAddForm');
+  $form_mode->setFormClass('edit', 'Drupal\entity\Form\EntityDisplayModeEditForm');
+  $form_mode->setFormClass('delete', 'Drupal\entity\Form\EntityDisplayModeDeleteForm');
+  $form_mode->set('admin_permission', 'administer display modes');
+  $form_mode->setLinkTemplate('delete-form', 'entity.entity_form_mode.delete_form');
+  $form_mode->setLinkTemplate('edit-form', 'entity.entity_form_mode.edit_form');
 
-  // Rename entity form displays.
-  $entity_type = \Drupal::entityManager()->getDefinition('entity_form_display');
-  if ($bundle_old !== $bundle_new) {
-    $ids = \Drupal::configFactory()->listAll('entity.form_display.' . $entity_type_id . '.' . $bundle_old . '.');
-    foreach ($ids as $id) {
-      $id = ConfigEntityStorage::getIDFromConfigName($id, $entity_type->getConfigPrefix());
-      $form_display = entity_load('entity_form_display', $id);
-      $new_id = $entity_type_id . '.' . $bundle_new . '.' . $form_display->mode;
-      $form_display->set('id', $new_id);
-      $form_display->bundle = $bundle_new;
-      $form_display->save();
-    }
-  }
+  $view_mode = $entity_types['entity_view_mode'];
+  $view_mode->setListBuilderClass('Drupal\entity\EntityDisplayModeListBuilder');
+  $view_mode->setFormClass('add', 'Drupal\entity\Form\EntityDisplayModeAddForm');
+  $view_mode->setFormClass('edit', 'Drupal\entity\Form\EntityDisplayModeEditForm');
+  $view_mode->setFormClass('delete', 'Drupal\entity\Form\EntityDisplayModeDeleteForm');
+  $view_mode->set('admin_permission', 'administer display modes');
+  $view_mode->setLinkTemplate('delete-form', 'entity.entity_view_mode.delete_form');
+  $view_mode->setLinkTemplate('edit-form', 'entity.entity_view_mode.edit_form');
 }
 
-/**
- * Implements hook_entity_bundle_delete().
- */
-function entity_entity_bundle_delete($entity_type_id, $bundle) {
-  // Remove entity displays of the deleted bundle.
-  $entity_type = \Drupal::entityManager()->getDefinition('entity_view_display');
-  $ids = \Drupal::configFactory()->listAll('entity.view_display.' . $entity_type_id . '.' . $bundle . '.');
-  foreach ($ids as &$id) {
-    $id = ConfigEntityStorage::getIDFromConfigName($id, $entity_type->getConfigPrefix());
-  }
-  entity_delete_multiple('entity_view_display', $ids);
-
-  // Remove entity form displays of the deleted bundle.
-  $entity_type = \Drupal::entityManager()->getDefinition('entity_form_display');
-  $ids = \Drupal::configFactory()->listAll('entity.form_display.' . $entity_type_id . '.' . $bundle . '.');
-  foreach ($ids as &$id) {
-    $id = ConfigEntityStorage::getIDFromConfigName($id, $entity_type->getConfigPrefix());
-  }
-  entity_delete_multiple('entity_form_display', $ids);
-}
-
-/**
- * Implements hook_module_preuninstall().
- */
-function entity_module_preuninstall($module) {
-  // Clean up all entity bundles (including field instances) of every entity
-  // type provided by the module that is being uninstalled.
-  foreach (\Drupal::entityManager()->getDefinitions() as $entity_type_id => $entity_type) {
-    if ($entity_type->getProvider() == $module) {
-      foreach (array_keys(entity_get_bundles($entity_type_id)) as $bundle) {
-        entity_invoke_bundle_hook('delete', $entity_type_id, $bundle);
-      }
-    }
-  }
-}
diff --git a/core/modules/entity/entity.routing.yml b/core/modules/entity/entity.routing.yml
index 212913ea51d23eed6f610d712c2ac5162970274b..2064c0a0940e87822992415e0086a2a0575e3a00 100644
--- a/core/modules/entity/entity.routing.yml
+++ b/core/modules/entity/entity.routing.yml
@@ -6,15 +6,15 @@ entity.display_mode:
   requirements:
     _permission: 'administer display modes'
 
-entity.view_mode_list:
+entity.entity_view_mode_list:
   path: '/admin/structure/display-modes/view'
   defaults:
-    _entity_list: 'view_mode'
+    _entity_list: 'entity_view_mode'
     _title: 'View modes'
   requirements:
     _permission: 'administer display modes'
 
-entity.view_mode_add:
+entity.entity_view_mode_add:
   path: '/admin/structure/display-modes/view/add'
   defaults:
     _content: '\Drupal\entity\Controller\EntityDisplayModeController::viewModeTypeSelection'
@@ -22,39 +22,39 @@ entity.view_mode_add:
   requirements:
     _permission: 'administer display modes'
 
-entity.view_mode_add_type:
+entity.entity_view_mode_add_type:
   path: '/admin/structure/display-modes/view/add/{entity_type_id}'
   defaults:
-    _entity_form: 'view_mode.add'
+    _entity_form: 'entity_view_mode.add'
     _title: 'Add view mode'
   requirements:
     _permission: 'administer display modes'
 
-entity.view_mode.edit_form:
-  path: '/admin/structure/display-modes/view/manage/{view_mode}'
+entity.entity_view_mode.edit_form:
+  path: '/admin/structure/display-modes/view/manage/{entity_view_mode}'
   defaults:
-    _entity_form: 'view_mode.edit'
+    _entity_form: 'entity_view_mode.edit'
     _title: 'Edit view mode'
   requirements:
-    _entity_access: 'view_mode.update'
+    _entity_access: 'entity_view_mode.update'
 
-entity.view_mode.delete_form:
-  path: '/admin/structure/display-modes/view/manage/{view_mode}/delete'
+entity.entity_view_mode.delete_form:
+  path: '/admin/structure/display-modes/view/manage/{entity_view_mode}/delete'
   defaults:
-    _entity_form: 'view_mode.delete'
+    _entity_form: 'entity_view_mode.delete'
     _title: 'Delete view mode'
   requirements:
-    _entity_access: 'view_mode.delete'
+    _entity_access: 'entity_view_mode.delete'
 
-entity.form_mode_list:
+entity.entity_form_mode_list:
   path: '/admin/structure/display-modes/form'
   defaults:
-    _entity_list: 'form_mode'
+    _entity_list: 'entity_form_mode'
     _title: 'Form modes'
   requirements:
     _permission: 'administer display modes'
 
-entity.form_mode_add:
+entity.entity_form_mode_add:
   path: '/admin/structure/display-modes/form/add'
   defaults:
     _content: '\Drupal\entity\Controller\EntityDisplayModeController::formModeTypeSelection'
@@ -62,26 +62,26 @@ entity.form_mode_add:
   requirements:
     _permission: 'administer display modes'
 
-entity.form_mode_add_type:
+entity.entity_form_mode_add_type:
   path: '/admin/structure/display-modes/form/add/{entity_type_id}'
   defaults:
-    _entity_form: 'form_mode.add'
+    _entity_form: 'entity_form_mode.add'
     _title: 'Add form mode'
   requirements:
     _permission: 'administer display modes'
 
-entity.form_mode.edit_form:
-  path: '/admin/structure/display-modes/form/manage/{form_mode}'
+entity.entity_form_mode.edit_form:
+  path: '/admin/structure/display-modes/form/manage/{entity_form_mode}'
   defaults:
-    _entity_form: 'form_mode.edit'
+    _entity_form: 'entity_form_mode.edit'
     _title: 'Edit form mode'
   requirements:
-    _entity_access: 'form_mode.update'
+    _entity_access: 'entity_form_mode.update'
 
-entity.form_mode.delete_form:
-  path: '/admin/structure/display-modes/form/manage/{form_mode}/delete'
+entity.entity_form_mode.delete_form:
+  path: '/admin/structure/display-modes/form/manage/{entity_form_mode}/delete'
   defaults:
-    _entity_form: 'form_mode.delete'
+    _entity_form: 'entity_form_mode.delete'
     _title: 'Delete form mode'
   requirements:
-    _entity_access: 'form_mode.delete'
+    _entity_access: 'entity_form_mode.delete'
diff --git a/core/modules/entity/src/Controller/EntityDisplayModeController.php b/core/modules/entity/src/Controller/EntityDisplayModeController.php
index af31044a28751a7e71331cfb68f0d05a27928d55..562a0daf52a9a8b2a195b8276d0fa396bb3c221c 100644
--- a/core/modules/entity/src/Controller/EntityDisplayModeController.php
+++ b/core/modules/entity/src/Controller/EntityDisplayModeController.php
@@ -27,7 +27,7 @@ public function viewModeTypeSelection() {
       if ($entity_type->isFieldable() && $entity_type->hasViewBuilderClass()) {
         $entity_types[$entity_type_id] = array(
           'title' => $entity_type->getLabel(),
-          'url' => new Url('entity.view_mode_add_type', array('entity_type_id' => $entity_type_id)),
+          'url' => new Url('entity.entity_view_mode_add_type', array('entity_type_id' => $entity_type_id)),
           'localized_options' => array(),
         );
       }
@@ -50,7 +50,7 @@ public function formModeTypeSelection() {
       if ($entity_type->isFieldable() && $entity_type->hasFormClasses()) {
         $entity_types[$entity_type_id] = array(
           'title' => $entity_type->getLabel(),
-          'url' => new Url('entity.form_mode_add_type', array('entity_type_id' => $entity_type_id)),
+          'url' => new Url('entity.entity_form_mode_add_type', array('entity_type_id' => $entity_type_id)),
           'localized_options' => array(),
         );
       }
diff --git a/core/modules/entity/src/Tests/EntityDisplayModeTest.php b/core/modules/entity/src/Tests/EntityDisplayModeTest.php
index 4373fd02ce301d5f03c77c13645b3c55e8d1bf1d..003412026b2838c5de334322ee50dc2c860f3292 100644
--- a/core/modules/entity/src/Tests/EntityDisplayModeTest.php
+++ b/core/modules/entity/src/Tests/EntityDisplayModeTest.php
@@ -21,7 +21,7 @@ class EntityDisplayModeTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test');
+  public static $modules = array('entity_test', 'entity');
 
   /**
    * Tests the EntityViewMode user interface.
diff --git a/core/modules/entity/src/Tests/EntityDisplayTest.php b/core/modules/entity/src/Tests/EntityDisplayTest.php
index 1efa671fac3b7ee3f9c5996be72e57dbf062dae5..6d99ce9b1a2d3a8a5df929dd725f86bf207d77c6 100644
--- a/core/modules/entity/src/Tests/EntityDisplayTest.php
+++ b/core/modules/entity/src/Tests/EntityDisplayTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\entity\Tests;
 
+use Drupal\Core\Entity\Entity\EntityViewMode;
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
@@ -78,12 +79,12 @@ public function testEntityDisplayCRUD() {
 
     // Check that CreateCopy() creates a new component that can be correclty
     // saved.
-    entity_create('view_mode', array('id' => $display->targetEntityType . '.other_view_mode', 'targetEntityType' => $display->targetEntityType))->save();
+    EntityViewMode::create(array('id' => $display->targetEntityType . '.other_view_mode', 'targetEntityType' => $display->targetEntityType))->save();
     $new_display = $display->createCopy('other_view_mode');
     $new_display->save();
     $new_display = entity_load('entity_view_display', $new_display->id());
     $dependencies = $new_display->calculateDependencies();
-    $this->assertEqual(array('entity' => array('entity.view_mode.entity_test.other_view_mode'), 'module' => array('entity_test')), $dependencies);
+    $this->assertEqual(array('entity' => array('core.entity_view_mode.entity_test.other_view_mode'), 'module' => array('entity_test')), $dependencies);
     $this->assertEqual($new_display->targetEntityType, $display->targetEntityType);
     $this->assertEqual($new_display->bundle, $display->bundle);
     $this->assertEqual($new_display->mode, 'other_view_mode');
@@ -233,7 +234,7 @@ public function testBaseFieldComponent() {
     // Check that saving the display only writes data for fields whose display
     // is configurable.
     $display->save();
-    $config = \Drupal::config('entity.view_display.' . $display->id());
+    $config = \Drupal::config('core.entity_view_display.' . $display->id());
     $data = $config->get();
     $this->assertFalse(isset($data['content']['test_no_display']));
     $this->assertFalse(isset($data['hidden']['test_no_display']));
@@ -275,9 +276,9 @@ public function testRenameDeleteBundle() {
     $type->type = 'article_rename';
     $type->save();
     $old_display = entity_load('entity_view_display', 'node.article.default');
-    $this->assertFalse($old_display);
+    $this->assertFalse((bool) $old_display);
     $old_form_display = entity_load('entity_form_display', 'node.article.default');
-    $this->assertFalse($old_form_display);
+    $this->assertFalse((bool) $old_form_display);
     $new_display = entity_load('entity_view_display', 'node.article_rename.default');
     $this->assertEqual('article_rename', $new_display->bundle);
     $this->assertEqual('node.article_rename.default', $new_display->id);
@@ -302,9 +303,9 @@ public function testRenameDeleteBundle() {
     // Delete the bundle.
     $type->delete();
     $display = entity_load('entity_view_display', 'node.article_rename.default');
-    $this->assertFalse($display);
+    $this->assertFalse((bool) $display);
     $form_display = entity_load('entity_form_display', 'node.article_rename.default');
-    $this->assertFalse($form_display);
+    $this->assertFalse((bool) $form_display);
   }
 
   /**
@@ -326,7 +327,7 @@ public function testDeleteFieldInstance() {
     $instance->save();
 
     // Create default and teaser entity display.
-    entity_create('view_mode', array('id' =>  'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save();
+    EntityViewMode::create(array('id' =>  'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save();
     entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
diff --git a/core/modules/entity/src/Tests/EntityFormDisplayTest.php b/core/modules/entity/src/Tests/EntityFormDisplayTest.php
index eaaec9a07f11c72e1cd44427a4ac632b30cde6b1..6723a49c8497b49453e0875931c8e63e798f0ab7 100644
--- a/core/modules/entity/src/Tests/EntityFormDisplayTest.php
+++ b/core/modules/entity/src/Tests/EntityFormDisplayTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\entity\Tests;
 
+use Drupal\Core\Entity\Entity\EntityFormMode;
 use Drupal\simpletest\DrupalUnitTestBase;
 
 /**
@@ -146,7 +147,7 @@ public function testBaseFieldComponent() {
     // Check that saving the display only writes data for fields whose display
     // is configurable.
     $display->save();
-    $config = \Drupal::config('entity.form_display.' . $display->id());
+    $config = \Drupal::config('core.entity_form_display.' . $display->id());
     $data = $config->get();
     $this->assertFalse(isset($data['content']['test_no_display']));
     $this->assertFalse(isset($data['hidden']['test_no_display']));
@@ -190,7 +191,7 @@ public function testDeleteFieldInstance() {
     $instance->save();
 
     // Create default and compact entity display.
-    entity_create('form_mode', array('id' =>  'entity_test.compact', 'targetEntityType' => 'entity_test'))->save();
+    EntityFormMode::create(array('id' =>  'entity_test.compact', 'targetEntityType' => 'entity_test'))->save();
     entity_create('entity_form_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
diff --git a/core/modules/field/field.api.php b/core/modules/field/field.api.php
index 8af955f71393096c6523f9d95580c07bea0d1937..d905c69b2687edaed99e41de54c4c645740b5e4d 100644
--- a/core/modules/field/field.api.php
+++ b/core/modules/field/field.api.php
@@ -119,7 +119,7 @@ function hook_field_storage_config_update_forbid(\Drupal\field\FieldStorageConfi
  * Widgets are @link forms_api_reference.html Form API @endlink
  * elements with additional processing capabilities. The methods of the
  * WidgetInterface object are typically called by respective methods in the
- * \Drupal\entity\Entity\EntityFormDisplay class.
+ * \Drupal\Core\Entity\Entity\EntityFormDisplay class.
  *
  * @see field
  * @see field_types
diff --git a/core/modules/field/src/Tests/DisplayApiTest.php b/core/modules/field/src/Tests/DisplayApiTest.php
index 0b8b860483cc2a646ea127e1067ccb0989434f2a..4753aef46710923b5256ce9130102955fe663280 100644
--- a/core/modules/field/src/Tests/DisplayApiTest.php
+++ b/core/modules/field/src/Tests/DisplayApiTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\field\Tests;
 
+use Drupal\Core\Entity\Entity\EntityViewMode;
+
 /**
  * Tests the field display API.
  *
@@ -99,7 +101,7 @@ protected function setUp() {
       ->setComponent($this->field_name, $this->display_options['default'])
       ->save();
     // Create a display for the teaser view mode.
-    entity_create('view_mode', array('id' =>  'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save();
+    EntityViewMode::create(array('id' =>  'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save();
     entity_get_display($instance['entity_type'], $instance['bundle'], 'teaser')
       ->setComponent($this->field_name, $this->display_options['teaser'])
       ->save();
diff --git a/core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php b/core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php
index ea5a30e010c52cd46b2bd9e5ac0f06d805190966..b1f9d1c4cf06d378c2478b3e065fda1bc99e5976 100644
--- a/core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php
+++ b/core/modules/field/tests/modules/field_test/src/Form/NestedEntityTestForm.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 
 /**
  * Provides a form for field_test routes.
diff --git a/core/modules/field_ui/field_ui.module b/core/modules/field_ui/field_ui.module
index 696d07a45fe13e9944c12972be53cee39d546b83..4cd3bceaa1fe8bc4d56f872431372bfc7f793c10 100644
--- a/core/modules/field_ui/field_ui.module
+++ b/core/modules/field_ui/field_ui.module
@@ -9,7 +9,7 @@
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\Element;
 use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\entity\EntityViewModeInterface;
+use Drupal\Core\Entity\EntityViewModeInterface;
 use Drupal\field_ui\FieldUI;
 use Drupal\field_ui\Plugin\Derivative\FieldUiLocalTask;
 
diff --git a/core/modules/forum/config/install/entity.form_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/install/core.entity_form_display.taxonomy_term.forums.default.yml
similarity index 100%
rename from core/modules/forum/config/install/entity.form_display.taxonomy_term.forums.default.yml
rename to core/modules/forum/config/install/core.entity_form_display.taxonomy_term.forums.default.yml
diff --git a/core/modules/forum/config/install/entity.view_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/install/core.entity_view_display.taxonomy_term.forums.default.yml
similarity index 100%
rename from core/modules/forum/config/install/entity.view_display.taxonomy_term.forums.default.yml
rename to core/modules/forum/config/install/core.entity_view_display.taxonomy_term.forums.default.yml
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityViewMode.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityViewMode.php
index 0887d30ab283a60daa9ddc61b186b03fcd664906..87fe20483825ade78cade931664b9ec4a942644c 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityViewMode.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityViewMode.php
@@ -9,7 +9,7 @@
 
 /**
  * @MigrateDestination(
- *   id = "entity:view_mode"
+ *   id = "entity:entity_view_mode"
  * )
  */
 class EntityViewMode extends EntityConfigBase {
diff --git a/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php b/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
index ac26f3aa2758e177d22676d48532514175889277..4708179c7994ca07ba35528bdb62ca9abe08fd60 100644
--- a/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
+++ b/core/modules/migrate/tests/src/destination/PerComponentEntityDisplayTest.php
@@ -33,7 +33,7 @@ public function testImport() {
     foreach ($values as $key => $value) {
       $row->setDestinationProperty($key, $value);
     }
-    $entity = $this->getMockBuilder('Drupal\entity\Entity\EntityViewDisplay')
+    $entity = $this->getMockBuilder('Drupal\Core\Entity\Entity\EntityViewDisplay')
       ->disableOriginalConstructor()
       ->getMock();
     $entity->expects($this->once())
diff --git a/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php b/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
index d1aa648bfc13a7e0f63499a350ef7f5312668494..e2504a8404ecb343902cbbb75aa81294d38d3aba 100644
--- a/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
+++ b/core/modules/migrate/tests/src/destination/PerComponentEntityFormDisplayTest.php
@@ -33,7 +33,7 @@ public function testImport() {
     foreach ($values as $key => $value) {
       $row->setDestinationProperty($key, $value);
     }
-    $entity = $this->getMockBuilder('Drupal\entity\Entity\EntityFormDisplay')
+    $entity = $this->getMockBuilder('Drupal\Core\Entity\Entity\EntityFormDisplay')
       ->disableOriginalConstructor()
       ->getMock();
     $entity->expects($this->once())
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml
index 4e5cfd118a7526081035e7132ea7ab3ba8ab3937..5c4cc8e835d9fd79fb9e835beb3cc701edac9c9a 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml
@@ -37,4 +37,4 @@ process:
   status: 'constants/status'
 
 destination:
-  plugin: entity:view_mode
+  plugin: entity:entity_view_mode
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
index c8f13aca7c800672329e4d4b6e2556aa4a8b43d6..11bb90a0ec90e9078493d6500c0c954d3c200267 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
@@ -11,7 +11,7 @@
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
 /**
- * Upgrade comment subject variable to entity.form_display.comment.*.default.yml
+ * Upgrade comment subject variable to core.entity_form_display.comment.*.default.yml
  *
  * @group migrate_drupal
  */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
index 47efbfcd9be52d44f4c423caa7b3a1376ff25465..f0b3dc54400835d2f02c6fbdb84d411215adb9cc 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
@@ -8,7 +8,7 @@
 namespace Drupal\migrate_drupal\Tests\d6;
 
 /**
- * Upgrade comment variables to entity.form_display.node.*.default.yml.
+ * Upgrade comment variables to core.entity_form_display.node.*.default.yml.
  *
  * @group migrate_drupal
  */
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
index 6e351105522c2c97a66923d660165f13afd63d94..4be0bea39cc3d6cfb5da8d887800187cdedd8024 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\migrate_drupal\Tests\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewMode;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
@@ -33,7 +34,7 @@ protected function setUp() {
     entity_create('node_type', array('type' => 'test_page'))->save();
     entity_create('node_type', array('type' => 'story'))->save();
     // Create the node preview view mode.
-    entity_create('view_mode', array('id' => 'node.preview', 'targetEntityType' => 'node'))->save();
+    EntityViewMode::create(array('id' => 'node.preview', 'targetEntityType' => 'node'))->save();
 
     // Add some id mappings for the dependant migrations.
     $id_mappings = array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
index b887f18e3a8fb6158326aae24e3e817f08b93d7a..8a7a48cbc10391c8b982d847e8b036ea02931922 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\migrate_drupal\Tests\d6;
 
+use Drupal\Core\Entity\Entity\EntityViewMode;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
 
@@ -43,7 +44,7 @@ protected function setUp() {
    */
   public function testViewModes() {
     // Test a new view mode.
-    $view_mode = entity_load('view_mode', 'node.preview');
+    $view_mode = EntityViewMode::load('node.preview');
     $this->assertEqual(is_null($view_mode), FALSE, 'Preview view mode loaded.');
     $this->assertEqual($view_mode->label(), 'Preview', 'View mode has correct label.');
     // Test the Id Map.
diff --git a/core/modules/node/config/install/entity.view_mode.node.full.yml b/core/modules/node/config/install/core.entity_view_mode.node.full.yml
similarity index 100%
rename from core/modules/node/config/install/entity.view_mode.node.full.yml
rename to core/modules/node/config/install/core.entity_view_mode.node.full.yml
diff --git a/core/modules/node/config/install/entity.view_mode.node.rss.yml b/core/modules/node/config/install/core.entity_view_mode.node.rss.yml
similarity index 100%
rename from core/modules/node/config/install/entity.view_mode.node.rss.yml
rename to core/modules/node/config/install/core.entity_view_mode.node.rss.yml
diff --git a/core/modules/node/config/install/entity.view_mode.node.search_index.yml b/core/modules/node/config/install/core.entity_view_mode.node.search_index.yml
similarity index 100%
rename from core/modules/node/config/install/entity.view_mode.node.search_index.yml
rename to core/modules/node/config/install/core.entity_view_mode.node.search_index.yml
diff --git a/core/modules/node/config/install/entity.view_mode.node.search_result.yml b/core/modules/node/config/install/core.entity_view_mode.node.search_result.yml
similarity index 100%
rename from core/modules/node/config/install/entity.view_mode.node.search_result.yml
rename to core/modules/node/config/install/core.entity_view_mode.node.search_result.yml
diff --git a/core/modules/node/config/install/entity.view_mode.node.teaser.yml b/core/modules/node/config/install/core.entity_view_mode.node.teaser.yml
similarity index 100%
rename from core/modules/node/config/install/entity.view_mode.node.teaser.yml
rename to core/modules/node/config/install/core.entity_view_mode.node.teaser.yml
diff --git a/core/modules/node/src/Form/NodePreviewForm.php b/core/modules/node/src/Form/NodePreviewForm.php
index 4c5bb913892adbc3c5bae0ff319e2217c11f9a8c..cdca58cc61d07bb0b0b5038b49997b95bfab7d27 100644
--- a/core/modules/node/src/Form/NodePreviewForm.php
+++ b/core/modules/node/src/Form/NodePreviewForm.php
@@ -13,7 +13,6 @@
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Url;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -141,9 +140,9 @@ protected function getViewModeOptions(EntityInterface $node) {
     $view_modes = $this->entityManager->getViewModes('node');
 
     // Get the list of available view modes for the current node's bundle.
-    $ids = $this->configFactory->listAll('entity.view_display.node.' . $node->bundle());
+    $ids = $this->configFactory->listAll('core.entity_view_display.node.' . $node->bundle());
     foreach ($ids as $id) {
-      $config_id = str_replace('entity.view_display' . '.', '', $id);
+      $config_id = str_replace('core.entity_view_display' . '.', '', $id);
       $load_ids[] = $config_id;
     }
     $displays = entity_load_multiple('entity_view_display', $load_ids);
diff --git a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
index 7c904d2ed0a238d6c1aa1141ab404ac19b05f7d8..8e7f51dfd52a6737159b4eba31e7673a1d450a40 100644
--- a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
+++ b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php
@@ -86,9 +86,9 @@ public function testConfigurationRename() {
     $expected = array(
       'node.type.' . $active_type . '::node.type.' . $staged_type,
       'core.base_field_override.node.' . $active_type . '.status::core.base_field_override.node.' . $staged_type . '.status',
-      'entity.form_display.node.' . $active_type . '.default::entity.form_display.node.' . $staged_type . '.default',
-      'entity.view_display.node.' . $active_type . '.default::entity.view_display.node.' . $staged_type . '.default',
-      'entity.view_display.node.' . $active_type . '.teaser::entity.view_display.node.' . $staged_type . '.teaser',
+      'core.entity_form_display.node.' . $active_type . '.default::core.entity_form_display.node.' . $staged_type . '.default',
+      'core.entity_view_display.node.' . $active_type . '.default::core.entity_view_display.node.' . $staged_type . '.default',
+      'core.entity_view_display.node.' . $active_type . '.teaser::core.entity_view_display.node.' . $staged_type . '.teaser',
       'field.instance.node.' . $active_type . '.body::field.instance.node.' . $staged_type . '.body',
     );
     $renames = $this->configImporter()->getUnprocessedConfiguration('rename');
diff --git a/core/modules/quickedit/src/Form/QuickEditFieldForm.php b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
index 3b4a5ee2b7f545330760f32ce686afe1a862a919..a5c4b38b60407797ea6f46ccb08a305902a35337 100644
--- a/core/modules/quickedit/src/Form/QuickEditFieldForm.php
+++ b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
@@ -15,7 +15,7 @@
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\Element;
-use Drupal\entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\user\TempStoreFactory;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
diff --git a/core/modules/quickedit/src/MetadataGenerator.php b/core/modules/quickedit/src/MetadataGenerator.php
index 1ae7975b50e12f0d7102797acddc6657114a8df4..c510bf1b8150724a61b335b9b8778ea8560f512b 100644
--- a/core/modules/quickedit/src/MetadataGenerator.php
+++ b/core/modules/quickedit/src/MetadataGenerator.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface;
-use Drupal\entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 
 /**
  * Generates in-place editing metadata for an entity field.
diff --git a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
index 94b27fc51781519aa369238bbc8b44532dc50905..795ed05f31029e0dc415b35ffae5f36394cf0ebd 100644
--- a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
+++ b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
@@ -147,7 +147,7 @@ protected function getAdditionalCacheTagsForEntity(EntityInterface $entity) {
    */
   protected function selectViewMode($entity_type) {
     $view_modes = \Drupal::entityManager()
-      ->getStorage('view_mode')
+      ->getStorage('entity_view_mode')
       ->loadByProperties(array('targetEntityType' => $entity_type));
 
     if (empty($view_modes)) {
diff --git a/core/modules/system/tests/modules/entity_test/config/install/entity.view_mode.entity_test.full.yml b/core/modules/system/tests/modules/entity_test/config/install/core.entity_view_mode.entity_test.full.yml
similarity index 100%
rename from core/modules/system/tests/modules/entity_test/config/install/entity.view_mode.entity_test.full.yml
rename to core/modules/system/tests/modules/entity_test/config/install/core.entity_view_mode.entity_test.full.yml
diff --git a/core/modules/system/tests/modules/entity_test/config/install/entity.view_mode.entity_test.test.yml b/core/modules/system/tests/modules/entity_test/config/install/core.entity_view_mode.entity_test.test.yml
similarity index 100%
rename from core/modules/system/tests/modules/entity_test/config/install/entity.view_mode.entity_test.test.yml
rename to core/modules/system/tests/modules/entity_test/config/install/core.entity_view_mode.entity_test.test.yml
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module
index c7db020079483d59b095b77b4733e50ab6161447..b0350879dd358d92ffb61cfbbd86d06b85815428 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.module
+++ b/core/modules/system/tests/modules/entity_test/entity_test.module
@@ -12,7 +12,7 @@
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
 
 /**
  * Filter that limits test entity list to revisable ones.
diff --git a/core/modules/taxonomy/config/install/entity.view_mode.taxonomy_term.full.yml b/core/modules/taxonomy/config/install/core.entity_view_mode.taxonomy_term.full.yml
similarity index 100%
rename from core/modules/taxonomy/config/install/entity.view_mode.taxonomy_term.full.yml
rename to core/modules/taxonomy/config/install/core.entity_view_mode.taxonomy_term.full.yml
diff --git a/core/modules/user/config/install/entity.form_mode.user.register.yml b/core/modules/user/config/install/core.entity_form_mode.user.register.yml
similarity index 100%
rename from core/modules/user/config/install/entity.form_mode.user.register.yml
rename to core/modules/user/config/install/core.entity_form_mode.user.register.yml
diff --git a/core/modules/user/config/install/entity.view_mode.user.compact.yml b/core/modules/user/config/install/core.entity_view_mode.user.compact.yml
similarity index 100%
rename from core/modules/user/config/install/entity.view_mode.user.compact.yml
rename to core/modules/user/config/install/core.entity_view_mode.user.compact.yml
diff --git a/core/modules/user/config/install/entity.view_mode.user.full.yml b/core/modules/user/config/install/core.entity_view_mode.user.full.yml
similarity index 100%
rename from core/modules/user/config/install/entity.view_mode.user.full.yml
rename to core/modules/user/config/install/core.entity_view_mode.user.full.yml
diff --git a/core/modules/user/user.info.yml b/core/modules/user/user.info.yml
index dbdb520706555c9c189b98d0cef4196c274fd82c..45a421a5ade5fa769e9088de5c68340224cfed51 100644
--- a/core/modules/user/user.info.yml
+++ b/core/modules/user/user.info.yml
@@ -6,5 +6,3 @@ version: VERSION
 core: 8.x
 required: true
 configure: user.admin_index
-dependencies:
-  - entity
diff --git a/core/modules/views/src/Tests/Handler/AreaEntityTest.php b/core/modules/views/src/Tests/Handler/AreaEntityTest.php
index 006e5b0dfd4b384008b720817058787fea85bceb..9082352f2869d01110f34a906b37c1120976f05d 100644
--- a/core/modules/views/src/Tests/Handler/AreaEntityTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaEntityTest.php
@@ -96,9 +96,9 @@ public function testEntityArea() {
     $this->assertTrue(strpos(trim((string) $result[0]), 'full') !== FALSE, 'The rendered entity appeared in the right view mode.');
 
     // Mark entity_test test view_mode as customizable.
-    $view_mode = \Drupal::entityManager()->getStorage('view_mode')->load('entity_test.test');
-    $view_mode->enable();
-    $view_mode->save();
+    $entity_view_mode = \Drupal::entityManager()->getStorage('entity_view_mode')->load('entity_test.test');
+    $entity_view_mode->enable();
+    $entity_view_mode->save();
 
     // Change the view mode of the area handler.
     $view = Views::getView('test_entity_area');
diff --git a/core/profiles/standard/config/install/entity.form_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
similarity index 100%
rename from core/profiles/standard/config/install/entity.form_display.node.article.default.yml
rename to core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
diff --git a/core/profiles/standard/config/install/entity.form_display.user.user.default.yml b/core/profiles/standard/config/install/core.entity_form_display.user.user.default.yml
similarity index 100%
rename from core/profiles/standard/config/install/entity.form_display.user.user.default.yml
rename to core/profiles/standard/config/install/core.entity_form_display.user.user.default.yml
diff --git a/core/profiles/standard/config/install/entity.view_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
similarity index 100%
rename from core/profiles/standard/config/install/entity.view_display.node.article.default.yml
rename to core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
diff --git a/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml b/core/profiles/standard/config/install/core.entity_view_display.node.article.teaser.yml
similarity index 95%
rename from core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml
rename to core/profiles/standard/config/install/core.entity_view_display.node.article.teaser.yml
index d22ab13a533758e48f1a708f7f3fc703af53672a..114bc32fd473ef0f5edc4d59af98576f92e58999 100644
--- a/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml
+++ b/core/profiles/standard/config/install/core.entity_view_display.node.article.teaser.yml
@@ -27,7 +27,7 @@ content:
     label: above
 dependencies:
   entity:
-    - entity.view_mode.node.teaser
+    - core.entity_view_mode.node.teaser
     - field.instance.node.article.body
     - field.instance.node.article.field_image
     - field.instance.node.article.field_tags
diff --git a/core/profiles/standard/config/install/entity.view_display.user.user.compact.yml b/core/profiles/standard/config/install/core.entity_view_display.user.user.compact.yml
similarity index 89%
rename from core/profiles/standard/config/install/entity.view_display.user.user.compact.yml
rename to core/profiles/standard/config/install/core.entity_view_display.user.user.compact.yml
index 2b0254295b423bb93514048dc6f134012d98e6d6..410f3f3c6534cda4dc671b5d1fec2f58bb8aa17a 100644
--- a/core/profiles/standard/config/install/entity.view_display.user.user.compact.yml
+++ b/core/profiles/standard/config/install/core.entity_view_display.user.user.compact.yml
@@ -16,7 +16,7 @@ hidden:
 status: true
 dependencies:
   entity:
-    - entity.view_mode.user.compact
+    - core.entity_view_mode.user.compact
   module:
     - image
     - user
diff --git a/core/profiles/standard/config/install/entity.view_display.user.user.default.yml b/core/profiles/standard/config/install/core.entity_view_display.user.user.default.yml
similarity index 100%
rename from core/profiles/standard/config/install/entity.view_display.user.user.default.yml
rename to core/profiles/standard/config/install/core.entity_view_display.user.user.default.yml
diff --git a/core/profiles/standard/standard.info.yml b/core/profiles/standard/standard.info.yml
index a1c07b23815b55fed1b5aeeba7652589bc917967..758a6b9b58ea6b7b44862a7aca2b89e162f6303d 100644
--- a/core/profiles/standard/standard.info.yml
+++ b/core/profiles/standard/standard.info.yml
@@ -19,6 +19,7 @@ dependencies:
   - block_content
   - quickedit
   - editor
+  - entity
   - entity_reference
   - help
   - image
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
index 9b323426624115126bbebd53ccf519b76681a11e..4e62f114fc4788d5fc05b19d0cf88633417d2e76 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayModeBaseUnitTest.php
@@ -11,7 +11,7 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * @coversDefaultClass \Drupal\entity\EntityDisplayModeBase
+ * @coversDefaultClass \Drupal\Core\Entity\EntityDisplayModeBase
  * @group Config
  */
 class EntityDisplayModeBaseUnitTest extends UnitTestCase {
@@ -19,7 +19,7 @@ class EntityDisplayModeBaseUnitTest extends UnitTestCase {
   /**
    * The entity under test.
    *
-   * @var \Drupal\entity\EntityDisplayModeBase|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityDisplayModeBase|\PHPUnit_Framework_MockObject_MockObject
    */
   protected $entity;
 
@@ -94,7 +94,7 @@ public function testCalculateDependencies() {
       ->with($this->entityType)
       ->will($this->returnValue($this->entityInfo));
 
-    $this->entity = $this->getMockBuilder('\Drupal\entity\EntityDisplayModeBase')
+    $this->entity = $this->getMockBuilder('\Drupal\Core\Entity\EntityDisplayModeBase')
       ->setConstructorArgs(array($values, $this->entityType))
       ->setMethods(array('getFilterFormat'))
       ->getMock();