diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
index 84b38ed..2bad758 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
@@ -52,8 +52,8 @@ public function testBlockLinks() {
     $block = $this->drupalPlaceBlock("aggregator_feed_block", array('label' => 'feed-' . $feed->label()));
 
     // Configure the feed that should be displayed.
-    $block->getPlugin()->setConfigurationValue('feed', $feed->id());
-    $block->getPlugin()->setConfigurationValue('block_count', 2);
+    $block->getBlockType()->setConfigurationValue('feed', $feed->id());
+    $block->getBlockType()->setConfigurationValue('block_count', 2);
     $block->save();
 
     // Confirm that the block is now being displayed on pages.
@@ -72,7 +72,7 @@ public function testBlockLinks() {
 
     // Set the number of news items to 0 to test that the block does not show
     // up.
-    $block->getPlugin()->setConfigurationValue('block_count', 0);
+    $block->getBlockType()->setConfigurationValue('block_count', 0);
     $block->save();
     // Check that the block is no longer displayed.
     $this->drupalGet('test-page');
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Tests/CategorizeFeedItemTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/CategorizeFeedItemTest.php
index b34a46f..ca4229a 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Tests/CategorizeFeedItemTest.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/CategorizeFeedItemTest.php
@@ -77,7 +77,7 @@ function testCategorizeFeedItem() {
     $block = $this->drupalPlaceBlock("aggregator_category_block", array('label' => 'category-' . $category->title));
 
     // Configure the feed that should be displayed.
-    $block->getPlugin()->setConfigurationValue('cid', $category->cid);
+    $block->getBlockType()->setConfigurationValue('cid', $category->cid);
     $block->save();
 
     // Visit the frontpage, assert that the block and the feeds are displayed.
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Tests/RemoveFeedTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/RemoveFeedTest.php
index d827be8..4fb67e1 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Tests/RemoveFeedTest.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/RemoveFeedTest.php
@@ -36,10 +36,10 @@ function testRemoveFeed() {
 
     // Place a block for both feeds.
     $block = $this->drupalPlaceBlock('aggregator_feed_block');
-    $block->getPlugin()->setConfigurationValue('feed', $feed1->id());
+    $block->getBlockType()->setConfigurationValue('feed', $feed1->id());
     $block->save();
     $block2 = $this->drupalPlaceBlock('aggregator_feed_block');
-    $block2->getPlugin()->setConfigurationValue('feed', $feed2->id());
+    $block2->getBlockType()->setConfigurationValue('feed', $feed2->id());
     $block2->save();
 
     // Delete feed.
diff --git a/core/modules/block/block.api.php b/core/modules/block/block.api.php
index aa915a3..f2f7a30 100644
--- a/core/modules/block/block.api.php
+++ b/core/modules/block/block.api.php
@@ -31,12 +31,12 @@
  *   A renderable array of data, as returned from the build() implementation of
  *   the plugin that defined the block:
  *   - #title: The default localized title of the block.
- * @param \Drupal\block\BlockPluginInterface $block
+ * @param \Drupal\block\BlockTypeInterface $block
  *   The block plugin instance.
  *
  * @see hook_block_view_BASE_BLOCK_ID_alter()
  */
-function hook_block_view_alter(array &$build, \Drupal\block\BlockPluginInterface $block) {
+function hook_block_view_alter(array &$build, \Drupal\block\BlockTypeInterface $block) {
   // Remove the contextual links on all blocks that provide them.
   if (isset($build['#contextual_links'])) {
     unset($build['#contextual_links']);
@@ -58,12 +58,12 @@ function hook_block_view_alter(array &$build, \Drupal\block\BlockPluginInterface
  *   A renderable array of data, as returned from the build() implementation of
  *   the plugin that defined the block:
  *   - #title: The default localized title of the block.
- * @param \Drupal\block\BlockPluginInterface $block
+ * @param \Drupal\block\BlockTypeInterface $block
  *   The block plugin instance.
  *
  * @see hook_block_view_alter()
  */
-function hook_block_view_BASE_BLOCK_ID_alter(array &$build, \Drupal\block\BlockPluginInterface $block) {
+function hook_block_view_BASE_BLOCK_ID_alter(array &$build, \Drupal\block\BlockTypeInterface $block) {
   // Change the title of the specific block.
   $build['#title'] = t('New title of the block');
 }
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 8bcce1f..016c7bc 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -332,7 +332,7 @@ function _block_rehash($theme = NULL) {
   foreach ($blocks as $block_id => $block) {
     // Remove any invalid block from the list.
     // @todo Remove this check as part of https://drupal.org/node/1776830.
-    if (!$block->getPlugin()) {
+    if (!$block->getBlockType()) {
       unset($blocks[$block_id]);
       continue;
     }
@@ -420,7 +420,7 @@ function block_list($region) {
     foreach (entity_load_multiple_by_properties('block', array('theme' => $theme)) as $block_id => $block) {
       // Onlye include valid blocks in the list.
       // @todo Remove this check as part of https://drupal.org/node/1776830.
-      if ($block->getPlugin()) {
+      if ($block->getBlockType()) {
         $blocks[$block->get('region')][$block_id] = $block;
       }
     }
diff --git a/core/modules/block/lib/Drupal/block/BlockAccessController.php b/core/modules/block/lib/Drupal/block/BlockAccessController.php
index 7c61bc6..e2ffbbc 100644
--- a/core/modules/block/lib/Drupal/block/BlockAccessController.php
+++ b/core/modules/block/lib/Drupal/block/BlockAccessController.php
@@ -64,7 +64,7 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A
     }
 
     // If the plugin denies access, then deny access.
-    if (!$entity->getPlugin()->access()) {
+    if (!$entity->getBlockType()->access()) {
       return FALSE;
     }
 
diff --git a/core/modules/block/lib/Drupal/block/BlockBase.php b/core/modules/block/lib/Drupal/block/BlockBase.php
index 579e841..f0ad4c2 100644
--- a/core/modules/block/lib/Drupal/block/BlockBase.php
+++ b/core/modules/block/lib/Drupal/block/BlockBase.php
@@ -19,7 +19,7 @@
  * block settings, and handling for general user-defined block visibility
  * settings.
  */
-abstract class BlockBase extends PluginBase implements BlockPluginInterface {
+abstract class BlockBase extends PluginBase implements BlockTypeInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/block/lib/Drupal/block/BlockFormController.php b/core/modules/block/lib/Drupal/block/BlockFormController.php
index 3915315..8a174bd 100644
--- a/core/modules/block/lib/Drupal/block/BlockFormController.php
+++ b/core/modules/block/lib/Drupal/block/BlockFormController.php
@@ -97,7 +97,7 @@ public function form(array $form, array &$form_state) {
       '#type' => 'value',
       '#value' => $entity->id(),
     );
-    $form['settings'] = $entity->getPlugin()->buildConfigurationForm(array(), $form_state);
+    $form['settings'] = $entity->getBlockType()->buildConfigurationForm(array(), $form_state);
 
     // If creating a new block, calculate a safe default machine name.
     $form['machine_name'] = array(
@@ -309,7 +309,7 @@ public function validate(array $form, array &$form_state) {
       'values' => &$form_state['values']['settings']
     );
     // Call the plugin validate handler.
-    $entity->getPlugin()->validateConfigurationForm($form, $settings);
+    $entity->getBlockType()->validateConfigurationForm($form, $settings);
   }
 
   /**
@@ -325,7 +325,7 @@ public function submit(array $form, array &$form_state) {
       'values' => &$form_state['values']['settings']
     );
     // Call the plugin submit handler.
-    $entity->getPlugin()->submitConfigurationForm($form, $settings);
+    $entity->getBlockType()->submitConfigurationForm($form, $settings);
 
     // Save the settings of the plugin.
     $entity->save();
@@ -355,7 +355,7 @@ public function delete(array $form, array &$form_state) {
    *   Returns the unique name.
    */
   public function getUniqueMachineName(BlockInterface $block) {
-    $suggestion = $block->getPlugin()->getMachineNameSuggestion();
+    $suggestion = $block->getBlockType()->getMachineNameSuggestion();
 
     // Get all the blocks which starts with the suggested machine name.
     $query = $this->entityQueryFactory->get('block');
diff --git a/core/modules/block/lib/Drupal/block/BlockInterface.php b/core/modules/block/lib/Drupal/block/BlockInterface.php
index 0ffbcfc..e5f19dc 100644
--- a/core/modules/block/lib/Drupal/block/BlockInterface.php
+++ b/core/modules/block/lib/Drupal/block/BlockInterface.php
@@ -22,9 +22,9 @@
   /**
    * Returns the plugin instance.
    *
-   * @return \Drupal\block\BlockPluginInterface
+   * @return \Drupal\block\BlockTypeInterface
    *   The plugin instance for this block.
    */
-  public function getPlugin();
+  public function getBlockType();
 
 }
diff --git a/core/modules/block/lib/Drupal/block/BlockListController.php b/core/modules/block/lib/Drupal/block/BlockListController.php
index 697f09b..a248600 100644
--- a/core/modules/block/lib/Drupal/block/BlockListController.php
+++ b/core/modules/block/lib/Drupal/block/BlockListController.php
@@ -186,7 +186,7 @@ public function buildForm(array $form, array &$form_state) {
 
     // Build blocks first for each region.
     foreach ($entities as $entity_id => $entity) {
-      $definition = $entity->getPlugin()->getPluginDefinition();
+      $definition = $entity->getBlockType()->getPluginDefinition();
       $blocks[$entity->get('region')][$entity_id] = array(
         'admin_label' => $definition['admin_label'],
         'entity_id' => $entity_id,
diff --git a/core/modules/block/lib/Drupal/block/BlockRenderController.php b/core/modules/block/lib/Drupal/block/BlockRenderController.php
index 68599a5..d398a2b 100644
--- a/core/modules/block/lib/Drupal/block/BlockRenderController.php
+++ b/core/modules/block/lib/Drupal/block/BlockRenderController.php
@@ -36,7 +36,7 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
   public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
     $build = array();
     foreach ($entities as $entity_id => $entity) {
-      $plugin = $entity->getPlugin();
+      $plugin = $entity->getBlockType();
       $plugin_id = $plugin->getPluginId();
 
       if ($content = $plugin->build()) {
diff --git a/core/modules/block/lib/Drupal/block/BlockPluginBag.php b/core/modules/block/lib/Drupal/block/BlockTypeBag.php
similarity index 88%
rename from core/modules/block/lib/Drupal/block/BlockPluginBag.php
rename to core/modules/block/lib/Drupal/block/BlockTypeBag.php
index 9bd948d..cebb318 100644
--- a/core/modules/block/lib/Drupal/block/BlockPluginBag.php
+++ b/core/modules/block/lib/Drupal/block/BlockTypeBag.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\block\BlockPluginBag.
+ * Contains \Drupal\block\BlockTypeBag.
  */
 
 namespace Drupal\block;
@@ -13,9 +13,9 @@
 use Drupal\Component\Plugin\DefaultSinglePluginBag;
 
 /**
- * Provides a collection of block plugins.
+ * Provides a collection of block types.
  */
-class BlockPluginBag extends DefaultSinglePluginBag {
+class BlockTypeBag extends DefaultSinglePluginBag {
 
   /**
    * The block ID this plugin bag belongs to.
@@ -36,7 +36,7 @@ public function __construct(PluginManagerInterface $manager, array $instance_ids
   /**
    * {@inheritdoc}
    *
-   * @return \Drupal\block\BlockPluginInterface
+   * @return \Drupal\block\BlockTypeInterface
    */
   public function &get($instance_id) {
     return parent::get($instance_id);
diff --git a/core/modules/block/lib/Drupal/block/BlockPluginInterface.php b/core/modules/block/lib/Drupal/block/BlockTypeInterface.php
similarity index 81%
rename from core/modules/block/lib/Drupal/block/BlockPluginInterface.php
rename to core/modules/block/lib/Drupal/block/BlockTypeInterface.php
index b5433e6..c989a5d 100644
--- a/core/modules/block/lib/Drupal/block/BlockPluginInterface.php
+++ b/core/modules/block/lib/Drupal/block/BlockTypeInterface.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\block\BlockPluginInterface.
+ * Contains \Drupal\block\BlockTypeInterface.
  */
 
 namespace Drupal\block;
@@ -12,20 +12,20 @@
 use Drupal\Core\Plugin\PluginFormInterface;
 
 /**
- * Defines the required interface for all block plugins.
+ * Defines the required interface for all block types.
  *
  * @todo Add detailed documentation here explaining the block system's
  *   architecture and the relationships between the various objects, including
  *   brif references to the important components that are not coupled to the
  *   interface.
  */
-interface BlockPluginInterface extends ConfigurablePluginInterface, PluginFormInterface, PluginInspectionInterface {
+interface BlockTypeInterface extends ConfigurablePluginInterface, PluginFormInterface, PluginInspectionInterface {
 
   /**
    * Indicates whether the block should be shown.
    *
    * This method allows base implementations to add general access restrictions
-   * that should apply to all extending block plugins.
+   * that should apply to all extending block types.
    *
    * @return bool
    *   TRUE if the block should be shown, or FALSE otherwise.
@@ -35,7 +35,7 @@
   public function access();
 
   /**
-   * Builds and returns the renderable array for this block plugin.
+   * Builds and returns the renderable array for this block type.
    *
    * @return array
    *   A renderable array representing the content of the block.
@@ -61,7 +61,7 @@ public function build();
   public function setConfigurationValue($key, $value);
 
   /**
-   * Returns the configuration form elements specific to this block plugin.
+   * Returns the configuration form elements specific to this block type.
    *
    * Blocks that need to add form elements to the normal block configuration
    * form should implement this method.
@@ -81,15 +81,15 @@ public function blockForm($form, &$form_state);
    *
    * Note that this method takes the form structure and form state arrays for
    * the full block configuration form as arguments, not just the elements
-   * defined in BlockPluginInterface::blockForm().
+   * defined in BlockTypeInterface::blockForm().
    *
    * @param array $form
    *   The form definition array for the full block configuration form.
    * @param array $form_state
    *   An array containing the current state of the configuration form.
    *
-   * @see \Drupal\block\BlockPluginInterface::blockForm()
-   * @see \Drupal\block\BlockPluginInterface::blockSubmit()
+   * @see \Drupal\block\BlockTypeInterface::blockForm()
+   * @see \Drupal\block\BlockTypeInterface::blockSubmit()
    */
   public function blockValidate($form, &$form_state);
 
@@ -98,22 +98,22 @@ public function blockValidate($form, &$form_state);
    *
    * Note that this method takes the form structure and form state arrays for
    * the full block configuration form as arguments, not just the elements
-   * defined in BlockPluginInterface::blockForm().
+   * defined in BlockTypeInterface::blockForm().
    *
    * @param array $form
    *   The form definition array for the full block configuration form.
    * @param array $form_state
    *   An array containing the current state of the configuration form.
    *
-   * @see \Drupal\block\BlockPluginInterface::blockForm()
-   * @see \Drupal\block\BlockPluginInterface::blockValidate()
+   * @see \Drupal\block\BlockTypeInterface::blockForm()
+   * @see \Drupal\block\BlockTypeInterface::blockValidate()
    */
   public function blockSubmit($form, &$form_state);
 
   /**
    * Suggests a machine name to identify an instance of this block.
    *
-   * The block plugin need not verify that the machine name is at all unique. It
+   * The block type need not verify that the machine name is at all unique. It
    * is only responsible for providing a baseline suggestion; calling code is
    * responsible for ensuring whatever uniqueness is required for the use case.
    *
diff --git a/core/modules/block/lib/Drupal/block/Entity/Block.php b/core/modules/block/lib/Drupal/block/Entity/Block.php
index f921834..78b1d0d 100644
--- a/core/modules/block/lib/Drupal/block/Entity/Block.php
+++ b/core/modules/block/lib/Drupal/block/Entity/Block.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\Annotation\EntityType;
 use Drupal\Core\Annotation\Translation;
-use Drupal\block\BlockPluginBag;
+use Drupal\block\BlockTypeBag;
 use Drupal\block\BlockInterface;
 use Drupal\Core\Entity\EntityStorageControllerInterface;
 
@@ -60,7 +60,7 @@ class Block extends ConfigEntityBase implements BlockInterface {
   public $uuid;
 
   /**
-   * The plugin instance settings.
+   * The block type instance settings.
    *
    * @var array
    */
@@ -81,18 +81,18 @@ class Block extends ConfigEntityBase implements BlockInterface {
   public $weight;
 
   /**
-   * The plugin instance ID.
+   * The block type instance ID.
    *
    * @var string
    */
-  protected $plugin;
+  protected $blockType;
 
   /**
-   * The plugin bag that holds the block plugin for this entity.
+   * The block type bag that holds the block type for this entity.
    *
-   * @var \Drupal\block\BlockPluginBag
+   * @var \Drupal\block\BlockTypeBag
    */
-  protected $pluginBag;
+  protected $blockTypeBag;
 
   /**
    * The visibility settings.
@@ -107,14 +107,14 @@ class Block extends ConfigEntityBase implements BlockInterface {
   public function __construct(array $values, $entity_type) {
     parent::__construct($values, $entity_type);
 
-    $this->pluginBag = new BlockPluginBag(\Drupal::service('plugin.manager.block'), array($this->plugin), $this->get('settings'), $this->id());
+    $this->blockTypeBag = new BlockTypeBag(\Drupal::service('plugin.manager.block'), array($this->blockType), $this->get('settings'), $this->id());
   }
 
   /**
    * {@inheritdoc}
    */
-  public function getPlugin() {
-    return $this->pluginBag->get($this->plugin);
+  public function getBlockType() {
+    return $this->blockTypeBag->get($this->blockType);
   }
 
   /**
@@ -145,7 +145,7 @@ public function getExportProperties() {
     $names = array(
       'region',
       'weight',
-      'plugin',
+      'blockType',
       'settings',
       'visibility',
     );
@@ -161,7 +161,7 @@ public function getExportProperties() {
   public function preSave(EntityStorageControllerInterface $storage_controller) {
     parent::preSave($storage_controller);
 
-    $this->set('settings', $this->getPlugin()->getConfiguration());
+    $this->set('settings', $this->getBlockType()->getConfiguration());
   }
 
   /**
diff --git a/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php b/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
index a1187a6..6380e99 100644
--- a/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
+++ b/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
@@ -18,7 +18,7 @@
  *
  * @todo Add documentation to this class.
  *
- * @see \Drupal\block\BlockPluginInterface
+ * @see \Drupal\block\BlockTypeInterface
  */
 class BlockManager extends DefaultPluginManager {
 
diff --git a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
index 06f860a..438b740 100644
--- a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
+++ b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
@@ -293,7 +293,7 @@ public function blockForm(ViewsBlock $block, array &$form, array &$form_state) {
             '#type' => 'select',
             '#title' => t('Items per block'),
             '#options' => array(
-              'none' => t('@count (default setting)', array('@count' => $this->getPlugin('pager')->getItemsPerPage())),
+              'none' => t('@count (default setting)', array('@count' => $this->getBlockType('pager')->getItemsPerPage())),
               5 => 5,
               10 => 10,
               20 => 20,
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php
index 6206dbb..900043b 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockCacheTest.php
@@ -198,7 +198,7 @@ function testCachePerPage() {
    * Private helper method to set the test block's cache mode.
    */
   private function setCacheMode($cache_mode) {
-    $this->block->getPlugin()->setConfigurationValue('cache', $cache_mode);
+    $this->block->getBlockType()->setConfigurationValue('cache', $cache_mode);
     $this->block->save();
   }
 
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
index 4e41f62..13e0f7a 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
@@ -67,7 +67,7 @@ protected function createTests() {
     // Attempt to create a block without a plugin.
     try {
       $entity = $this->controller->create(array());
-      $entity->getPlugin();
+      $entity->getBlockType();
       $this->fail('A block without a plugin was created with no exception thrown.');
     }
     catch (PluginException $e) {
@@ -106,7 +106,7 @@ protected function createTests() {
     );
     $this->assertIdentical($actual_properties, $expected_properties, 'The block properties are exported correctly.');
 
-    $this->assertTrue($entity->getPlugin() instanceof TestHtmlIdBlock, 'The entity has an instance of the correct block plugin.');
+    $this->assertTrue($entity->getBlockType() instanceof TestHtmlIdBlock, 'The entity has an instance of the correct block plugin.');
   }
 
   /**
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php
index cf50e78..a8f61f3 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockTemplateSuggestionsUnitTest.php
@@ -45,7 +45,7 @@ function testBlockThemeHookSuggestions() {
 
     $variables = array();
     $variables['elements']['#block'] = $block;
-    $variables['elements']['#configuration'] = $block->getPlugin()->getConfiguration();
+    $variables['elements']['#configuration'] = $block->getBlockType()->getConfiguration();
     $variables['elements']['#plugin_id'] = $block->get('plugin');
     $variables['elements']['content'] = array();
     // Test adding a class to the block content.
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
index 681e67d..f30db0f 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
@@ -257,7 +257,7 @@ function testBlockRehash() {
     $this->assertEqual($settings['cache'], DRUPAL_CACHE_PER_ROLE, 'Test block cache mode defaults to DRUPAL_CACHE_PER_ROLE.');
 
     // Disable caching for this block.
-    $block->getPlugin()->setConfigurationValue('cache', DRUPAL_NO_CACHE);
+    $block->getBlockType()->setConfigurationValue('cache', DRUPAL_NO_CACHE);
     $block->save();
     // Flushing all caches should call _block_rehash().
     $this->resetAll();
diff --git a/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php b/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
index 668bd77..153cf23 100644
--- a/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
@@ -210,7 +210,7 @@ public function testViewsBlockForm() {
     $this->drupalPostForm('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme, $edit, t('Save block'));
 
     $block = $storage->load('stark.views_block__test_view_block_block_1_4');
-    $config = $block->getPlugin()->getConfiguration();
+    $config = $block->getBlockType()->getConfiguration();
     $this->assertEqual(10, $config['items_per_page'], "'Items per page' is properly saved.");
 
     $edit['settings[override][items_per_page]'] = 5;
@@ -218,7 +218,7 @@ public function testViewsBlockForm() {
 
     $block = $storage->load('stark.views_block__test_view_block_block_1_4');
 
-    $config = $block->getPlugin()->getConfiguration();
+    $config = $block->getBlockType()->getConfiguration();
     $this->assertEqual(5, $config['items_per_page'], "'Items per page' is properly saved.");
   }
 
diff --git a/core/modules/block/tests/modules/block_test/config/block.block.stark.test_block.yml b/core/modules/block/tests/modules/block_test/config/block.block.stark.test_block.yml
index e8b5ade..6d372b1 100644
--- a/core/modules/block/tests/modules/block_test/config/block.block.stark.test_block.yml
+++ b/core/modules/block/tests/modules/block_test/config/block.block.stark.test_block.yml
@@ -3,7 +3,7 @@ weight: ''
 status: '1'
 langcode: en
 region: '-1'
-plugin: test_html_id
+blockType: test_html_id
 settings:
   label: 'Test block html id"'
   module: block_test
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentBlockTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentBlockTest.php
index 61ce22b..0d7fe34 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentBlockTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentBlockTest.php
@@ -78,7 +78,7 @@ function testRecentCommentBlock() {
     $this->assertTrue(strpos($this->drupalGetContent(), $comment3->comment_body->value) < strpos($this->drupalGetContent(), $comment2->subject->value), 'Comments were ordered correctly in block.');
 
     // Set the number of recent comments to show to 10.
-    $block->getPlugin()->setConfigurationValue('block_count', 10);
+    $block->getBlockType()->setConfigurationValue('block_count', 10);
     $block->save();
 
     // Post an additional comment.
diff --git a/core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php b/core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php
index dda30f1..adb8492 100644
--- a/core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php
+++ b/core/modules/forum/lib/Drupal/forum/Tests/ForumBlockTest.php
@@ -71,7 +71,7 @@ public function testNewForumTopicsBlock() {
     }
 
     // Configure the new forum topics block to only show 2 topics.
-    $block->getPlugin()->setConfigurationValue('block_count', 2);
+    $block->getBlockType()->setConfigurationValue('block_count', 2);
     $block->save();
 
     $this->drupalGet('');
@@ -133,7 +133,7 @@ public function testActiveForumTopicsBlock() {
     }
 
     // Configure the active forum block to only show 2 topics.
-    $block->getPlugin()->setConfigurationValue('block_count', 2);
+    $block->getBlockType()->setConfigurationValue('block_count', 2);
     $block->save();
 
     $this->drupalGet('');
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index 70cf6e6..91f5310 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -12,7 +12,7 @@
  */
 
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\block\BlockPluginInterface;
+use Drupal\block\BlockTypeInterface;
 use Drupal\system\Entity\Menu;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Drupal\menu_link\Entity\MenuLink;
@@ -332,7 +332,7 @@ function _menu_parents_recurse($tree, $menu_name, $indent, &$options, $exclude,
 /**
  * Implements hook_block_view_BASE_BLOCK_ID_alter() for 'system_menu_block'.
  */
-function menu_block_view_system_menu_block_alter(array &$build, BlockPluginInterface $block) {
+function menu_block_view_system_menu_block_alter(array &$build, BlockTypeInterface $block) {
   // Add contextual links for system menu blocks.
   $menus = menu_list_system_menus();
   // @todo Clean up when http://drupal.org/node/1874498 lands.
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php
index a63bcf8..4e4d171 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeBlockFunctionalTest.php
@@ -106,7 +106,7 @@ public function testRecentNodeBlock() {
     $this->drupalLogin($this->adminUser);
 
     // Set the number of recent nodes to show to 10.
-    $block->getPlugin()->setConfigurationValue('block_count', 10);
+    $block->getBlockType()->setConfigurationValue('block_count', 10);
     $block->save();
 
     // Post an additional node.
diff --git a/core/profiles/minimal/config/block.block.stark.admin.yml b/core/profiles/minimal/config/block.block.stark.admin.yml
index e22ff72..9ef5a43 100644
--- a/core/profiles/minimal/config/block.block.stark.admin.yml
+++ b/core/profiles/minimal/config/block.block.stark.admin.yml
@@ -3,7 +3,7 @@ weight: '1'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: 'system_menu_block:admin'
+blockType: 'system_menu_block:admin'
 settings:
   label: Administration
   module: system
diff --git a/core/profiles/minimal/config/block.block.stark.login.yml b/core/profiles/minimal/config/block.block.stark.login.yml
index b15e395..03de6cc 100644
--- a/core/profiles/minimal/config/block.block.stark.login.yml
+++ b/core/profiles/minimal/config/block.block.stark.login.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: user_login_block
+blockType: user_login_block
 settings:
   label: 'User login'
   module: user
diff --git a/core/profiles/minimal/config/block.block.stark.tools.yml b/core/profiles/minimal/config/block.block.stark.tools.yml
index c53d934..a6db041 100644
--- a/core/profiles/minimal/config/block.block.stark.tools.yml
+++ b/core/profiles/minimal/config/block.block.stark.tools.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: 'system_menu_block:tools'
+blockType: 'system_menu_block:tools'
 settings:
   label: Tools
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.breadcrumbs.yml b/core/profiles/standard/config/block.block.bartik.breadcrumbs.yml
index db92b96..8faccee 100644
--- a/core/profiles/standard/config/block.block.bartik.breadcrumbs.yml
+++ b/core/profiles/standard/config/block.block.bartik.breadcrumbs.yml
@@ -3,7 +3,7 @@ weight: '-5'
 status: '0'
 langcode: en
 region: '-1'
-plugin: system_breadcrumb_block
+blockType: system_breadcrumb_block
 settings:
   label: Breadcrumbs
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.content.yml b/core/profiles/standard/config/block.block.bartik.content.yml
index 24b161c..6139f49 100644
--- a/core/profiles/standard/config/block.block.bartik.content.yml
+++ b/core/profiles/standard/config/block.block.bartik.content.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: content
-plugin: system_main_block
+blockType: system_main_block
 settings:
   label: 'Main page content'
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.footer.yml b/core/profiles/standard/config/block.block.bartik.footer.yml
index a770dae..377ba07 100644
--- a/core/profiles/standard/config/block.block.bartik.footer.yml
+++ b/core/profiles/standard/config/block.block.bartik.footer.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: footer
-plugin: 'system_menu_block:footer'
+blockType: 'system_menu_block:footer'
 settings:
   label: 'Footer menu'
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.help.yml b/core/profiles/standard/config/block.block.bartik.help.yml
index 11f7ec6..596593a 100644
--- a/core/profiles/standard/config/block.block.bartik.help.yml
+++ b/core/profiles/standard/config/block.block.bartik.help.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: help
-plugin: system_help_block
+blockType: system_help_block
 settings:
   label: 'System Help'
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.login.yml b/core/profiles/standard/config/block.block.bartik.login.yml
index 69e7f9b..39bcbc8 100644
--- a/core/profiles/standard/config/block.block.bartik.login.yml
+++ b/core/profiles/standard/config/block.block.bartik.login.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: user_login_block
+blockType: user_login_block
 settings:
   label: 'User login'
   module: user
diff --git a/core/profiles/standard/config/block.block.bartik.powered.yml b/core/profiles/standard/config/block.block.bartik.powered.yml
index a8de940..4594bbb 100644
--- a/core/profiles/standard/config/block.block.bartik.powered.yml
+++ b/core/profiles/standard/config/block.block.bartik.powered.yml
@@ -3,7 +3,7 @@ weight: '10'
 status: '1'
 langcode: en
 region: footer
-plugin: system_powered_by_block
+blockType: system_powered_by_block
 settings:
   label: 'Powered by Drupal'
   module: system
diff --git a/core/profiles/standard/config/block.block.bartik.search.yml b/core/profiles/standard/config/block.block.bartik.search.yml
index 18f6a7c..36b6208 100644
--- a/core/profiles/standard/config/block.block.bartik.search.yml
+++ b/core/profiles/standard/config/block.block.bartik.search.yml
@@ -3,7 +3,7 @@ weight: '-1'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: search_form_block
+blockType: search_form_block
 settings:
   label: Search
   module: search
diff --git a/core/profiles/standard/config/block.block.bartik.tools.yml b/core/profiles/standard/config/block.block.bartik.tools.yml
index 2855ce2..d603cc7 100644
--- a/core/profiles/standard/config/block.block.bartik.tools.yml
+++ b/core/profiles/standard/config/block.block.bartik.tools.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: sidebar_first
-plugin: 'system_menu_block:tools'
+blockType: 'system_menu_block:tools'
 settings:
   label: Tools
   module: system
diff --git a/core/profiles/standard/config/block.block.seven.breadcrumbs.yml b/core/profiles/standard/config/block.block.seven.breadcrumbs.yml
index 6ca8962..f7d5297 100644
--- a/core/profiles/standard/config/block.block.seven.breadcrumbs.yml
+++ b/core/profiles/standard/config/block.block.seven.breadcrumbs.yml
@@ -3,7 +3,7 @@ weight: '-2'
 status: '0'
 langcode: en
 region: '-1'
-plugin: system_breadcrumb_block
+blockType: system_breadcrumb_block
 settings:
   label: Breadcrumbs
   module: system
diff --git a/core/profiles/standard/config/block.block.seven.content.yml b/core/profiles/standard/config/block.block.seven.content.yml
index 1725800..6ea0687 100644
--- a/core/profiles/standard/config/block.block.seven.content.yml
+++ b/core/profiles/standard/config/block.block.seven.content.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: content
-plugin: system_main_block
+blockType: system_main_block
 settings:
   label: 'Main page content'
   module: system
diff --git a/core/profiles/standard/config/block.block.seven.help.yml b/core/profiles/standard/config/block.block.seven.help.yml
index 132ee45..0e8b4a6 100644
--- a/core/profiles/standard/config/block.block.seven.help.yml
+++ b/core/profiles/standard/config/block.block.seven.help.yml
@@ -3,7 +3,7 @@ weight: '0'
 status: '1'
 langcode: en
 region: help
-plugin: system_help_block
+blockType: system_help_block
 settings:
   label: 'System Help'
   module: system
diff --git a/core/profiles/standard/config/block.block.seven.login.yml b/core/profiles/standard/config/block.block.seven.login.yml
index 8ec1661..9e504b3 100644
--- a/core/profiles/standard/config/block.block.seven.login.yml
+++ b/core/profiles/standard/config/block.block.seven.login.yml
@@ -3,7 +3,7 @@ weight: '10'
 status: '1'
 langcode: en
 region: content
-plugin: user_login_block
+blockType: user_login_block
 settings:
   label: 'User login'
   module: user
