diff --git a/core/modules/migrate/migrate.services.yml b/core/modules/migrate/migrate.services.yml
index 3f2d32d..41c52ff 100644
--- a/core/modules/migrate/migrate.services.yml
+++ b/core/modules/migrate/migrate.services.yml
@@ -5,6 +5,9 @@ services:
       - { name: cache.bin }
     factory: cache_factory:get
     arguments: [migrate]
+  migrate.template_storage:
+    class: Drupal\migrate\MigrateTemplateStorage
+    arguments: ['@config.storage']
   plugin.manager.migrate.source:
     class: Drupal\migrate\Plugin\MigratePluginManager
     arguments: [source, '@container.namespaces', '@cache.discovery', '@module_handler', 'Drupal\migrate\Annotation\MigrateSource']
diff --git a/core/modules/migrate/src/MigrateTemplateStorage.php b/core/modules/migrate/src/MigrateTemplateStorage.php
new file mode 100644
index 0000000..7071105
--- /dev/null
+++ b/core/modules/migrate/src/MigrateTemplateStorage.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate\MigrateTemplateStorage.
+ */
+
+namespace Drupal\migrate;
+
+use Drupal\Component\Discovery\YamlDiscovery;
+use Drupal\Core\Config\ExtensionInstallStorage as BaseExtensionInstallStorage;
+use Drupal\Core\Config\StorageInterface;
+
+/**
+ * Storage to access migration template configuration in enabled extensions.
+ */
+class MigrateTemplateStorage extends BaseExtensionInstallStorage {
+
+  /**
+   * Extension sub-directory containing default configuration for migrations.
+   */
+  const MIGRATION_TEMPLATE_DIRECTORY = 'migration_templates';
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __construct(StorageInterface $config_storage, $directory = self::MIGRATION_TEMPLATE_DIRECTORY, $collection = StorageInterface::DEFAULT_COLLECTION, $include_profile = TRUE) {
+    parent::__construct($config_storage, $directory, $collection, $include_profile);
+  }
+
+  /**
+   * Find all migration templates with the specified tag.
+   *
+   * @param $tag
+   *   The tag to match.
+   *
+   * @return array
+   *   Any templates (parsed YAML config) that matched, keyed by the ID.
+   */
+  public function findTemplatesByTag($tag) {
+    $templates = $this->getAllTemplates();
+    $matched_templates = [];
+    foreach ($templates as $template_name => $template) {
+      if (!empty($template['migration_tags'])) {
+        if (in_array($tag, $template['migration_tags'])) {
+          $matched_templates[$template_name] = $template;
+        }
+      }
+    }
+    return $matched_templates;
+  }
+
+  /**
+   * Retrieves all migration templates belonging to enabled extensions.
+   *
+   * @return array
+   *   Array of parsed templates, keyed by the fully-qualified id.
+   */
+  public function getAllTemplates() {
+    // Retrieve the full list of templates, keyed by fully-qualified name,
+    // with the containing folder as the value.
+    $folders = $this->getAllFolders();
+    $templates = [];
+    foreach ($folders as $full_name => $folder) {
+      // The fully qualified name will be in the form migrate.migration.d6_node.
+      // Break out the provider ('migrate') and name ('migration.d6_node').
+      list($provider, $name) = explode('.', $full_name, 2);
+      // Retrieve and parse the template contents.
+      $discovery = new YamlDiscovery($name, array($provider => $folder));
+      $all = $discovery->findAll();
+      $templates[$full_name] = reset($all);
+    }
+
+    return $templates;
+  }
+
+}
diff --git a/core/modules/migrate/src/Tests/TemplateTest.php b/core/modules/migrate/src/Tests/TemplateTest.php
new file mode 100644
index 0000000..b110f6c
--- /dev/null
+++ b/core/modules/migrate/src/Tests/TemplateTest.php
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate\Tests\TemplateTest
+ */
+
+namespace Drupal\migrate\Tests;
+
+use Drupal\migrate\MigrationStorage;
+
+/**
+ * Test the migration template functionality.
+ *
+ * @group migrate
+ */
+class TemplateTest extends MigrateTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('template_test');
+
+  /**
+   * Test different connection types.
+   */
+  public function testTemplates() {
+    $migration_templates = \Drupal::service('migrate.template_storage')->findTemplatesByTag("Template Test");
+    $expected_url = [
+      'id' => 'url_template',
+      'label' => 'Template test - url',
+      'migration_tags' => ['Template Test'],
+      'source' => ['plugin' => 'empty'],
+      'process' => ['src' => 'foobar'],
+      'destination' => ['plugin' => 'url_alias'],
+    ];
+    $expected_node = [
+      'id' => 'node_template',
+      'label' => 'Template test - node',
+      'migration_tags' => ['Template Test'],
+      'source' => ['plugin' => 'empty'],
+      'process' => ['src' => 'barfoo'],
+      'destination' => ['plugin' => 'entity:node'],
+    ];
+    $this->assertIdentical($migration_templates['migrate.migration.url_template'], $expected_url);
+    $this->assertIdentical($migration_templates['migrate.migration.node_template'], $expected_node);
+    $this->assertFalse(isset($migration_templates['migrate.migration.other_template']));
+  }
+
+}
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml
new file mode 100644
index 0000000..6eead8b
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml
@@ -0,0 +1,10 @@
+id: node_template
+label: Template test - node
+migration_tags:
+  - Template Test
+source:
+  plugin: empty
+process:
+  src: barfoo
+destination:
+  plugin: entity:node
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml
new file mode 100644
index 0000000..3d974f0
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml
@@ -0,0 +1,10 @@
+id: other_template
+label: Template with a different tag
+migration_tags:
+  - Different Template Test
+source:
+  plugin: empty
+process:
+  src: raboof
+destination:
+  plugin: entity:user
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml
new file mode 100644
index 0000000..fd82119
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml
@@ -0,0 +1,10 @@
+id: url_template
+label: Template test - url
+migration_tags:
+  - Template Test
+source:
+  plugin: empty
+process:
+  src: foobar
+destination:
+  plugin: url_alias
diff --git a/core/modules/migrate/tests/modules/template_test/template_test.info.yml b/core/modules/migrate/tests/modules/template_test/template_test.info.yml
new file mode 100644
index 0000000..d396c63
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/template_test.info.yml
@@ -0,0 +1,5 @@
+name: 'Migration template test'
+type: module
+package: Testing
+version: VERSION
+core: 8.x
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml
deleted file mode 100644
index 1a518fb..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_action_settings
-label: Drupal 6 action configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - actions_max_stack
-process:
-  recursion_limit: actions_max_stack
-destination:
-  plugin: config
-  config_name: action.settings
-dependencies:
-  module:
-    - action
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml
deleted file mode 100644
index 2daaa8a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_aggregator_feed
-label: Drupal 6 aggregator feeds
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_aggregator_feed
-
-process:
-  fid: fid
-  title: title
-  url: url
-  refresh: refresh
-  checked: checked
-  link: link
-  description: description
-  image: image
-  etag: etag
-  modified: modified
-
-destination:
-  plugin: entity:aggregator_feed
-dependencies:
-  module:
-    - aggregator
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml
deleted file mode 100644
index aa80302..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-id: d6_aggregator_item
-label: Drupal 6 aggregator items
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_aggregator_item
-process:
-  iid: iid
-  fid:
-    plugin: migration
-    migration: d6_aggregator_feed
-    source:
-      - fid
-  title: title
-  link: link
-  author: author
-  description: description
-  timestamp: timestamp
-  guid: guid
-destination:
-  plugin: entity:aggregator_item
-migration_dependencies:
-  required:
-    - d6_aggregator_feed
-dependencies:
-  config:
-    - migrate.migration.d6_aggregator_feed
-  module:
-    - aggregator
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml
deleted file mode 100644
index 9720f6e..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_aggregator_settings
-label: Drupal 6 aggregator configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - aggregator_fetcher
-    - aggregator_parser
-    - aggregator_processors
-    - aggregator_allowed_html_tags
-    - aggregator_teaser_length
-    - aggregator_clear
-    - aggregator_summary_items
-process:
-  fetcher: aggregator_fetcher
-  parser: aggregator_parser
-  processors: aggregator_processors
-  'items/allowed_html': aggregator_allowed_html_tags
-  'items/teaser_length': aggregator_teaser_length
-  'items/expire': aggregator_clear
-  'source/list_max': aggregator_summary_items
-destination:
-  plugin: config
-  config_name: aggregator.settings
-dependencies:
-  module:
-    - aggregator
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml
deleted file mode 100644
index 1d83119..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-id: d6_block
-label: Drupal 6 blocks
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_block
-process:
-  # Drupal 8 does not have a status but it doesn't matter; this is here to
-  # skip disabled blocks.
-  status:
-    plugin: skip_on_empty
-    method: row
-    source: status
-  id:
-    # We need something unique, so aggregator, aggregator_1 etc will do.
-    plugin: dedupe_entity
-    entity_type: block
-    field: id
-    postfix: _
-    length: 32
-    source: module
-  plugin:
-    -
-      plugin: static_map
-      bypass: true
-      source:
-        - module
-        - delta
-      map:
-        book:
-          0: book_navigation
-        comment:
-          0: views_block:comments_recent-block_1
-        forum:
-          0: forum_active_block
-          1: forum_new_block
-        locale:
-          0: language_block
-        node:
-          0: node_syndicate_block
-        search:
-          0: search_form_block
-        statistics:
-          0: statistics_popular_block
-        system:
-          0: system_powered_by_block
-        user:
-          0: user_login_block
-          1: system_menu_block:tools
-          2: views_block:who_s_new-block_1
-          3: views_block:who_s_online-who_s_online_block
-    -
-      plugin: d6_block_plugin_id
-  theme:
-    plugin: d6_block_theme
-    source:
-      - theme
-      - default_theme
-      - admin_theme
-  region:
-    plugin: d6_block_region
-    source:
-      - region
-      - theme
-      - @theme
-    region_map:
-      left: sidebar_first
-      right: sidebar_second
-      sidebar_first: sidebar_first
-      sidebar_second: sidebar_second
-      help: help
-      header: header
-      footer: footer
-  label: title
-  weight: weight
-  settings:
-    plugin: d6_block_settings
-    source:
-      - @plugin
-      - delta
-      - settings
-  visibility:
-    plugin: d6_block_visibility
-    source:
-      - pages
-      - roles
-      - visibility
-destination:
-  plugin: entity:block
-migration_dependencies:
-  required:
-    - d6_menu
-    - d6_custom_block
-    - d6_user_role
-dependencies:
-  config:
-    - migrate.migration.d6_custom_block
-    - migrate.migration.d6_menu
-    - migrate.migration.d6_user_role
-  module:
-    - block
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml
deleted file mode 100644
index 08935ee..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_block_content_body_field
-label: Drupal 6 block content body field configuration
-migration_tags:
-  - Drupal 6
-source:
-  # We do an empty source and a proper destination to have an idmap for
-  # migration_dependencies.
-  plugin: md_empty
-  constants:
-    entity_type: block_content
-    bundle: basic
-    name: body
-    label: Body
-    display_summary: false
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  field_name: 'constants/name'
-  label: 'constants/label'
-  'settings/display_summary': 'constants/display_summary'
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_block_content_type
-dependencies:
-  config:
-    - migrate.migration.d6_block_content_type
-  module:
-    - block_content
-    - field
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml
deleted file mode 100644
index f055a61..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-id: d6_block_content_type
-label: Drupal 6 block content type
-migration_tags:
-  - Drupal 6
-source:
-  # We do an empty source and a proper destination to have an idmap for
-  # migration_dependencies.
-  plugin: md_empty
-  constants:
-    id: basic
-    label: Basic
-process:
-  id: 'constants/id'
-  label: 'constants/label'
-destination:
-  plugin: entity:block_content_type
-dependencies:
-  module:
-    - block_content
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml
deleted file mode 100644
index c8007e0..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-id: d6_book
-label: Drupal 6 books
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_book
-process:
-  nid: nid
-  'book/bid': bid
-  'book/weight': weight
-  'book/pid':
-    -
-      plugin: skip_on_empty
-      method: process
-      source: plid
-    -
-      plugin: migration
-      migration: d6_book
-destination:
-  plugin: book
-migration_dependencies:
-  required:
-    - d6_node
-dependencies:
-  config:
-    - migrate.migration.d6_node
-  module:
-    - book
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml
deleted file mode 100644
index 35302d0..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-id: d6_book_settings
-label: Drupal 6 book configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - book_child_type
-    - book_block_mode
-    - book_allowed_types
-process:
-  child_type: book_child_type
-  'block/navigation/mode': book_block_mode
-  allowed_types: book_allowed_types
-destination:
-  plugin: config
-  config_name: book.settings
-dependencies:
-  module:
-    - book
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml
deleted file mode 100644
index b3203f9..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-id: d6_cck_field_revision
-label: Drupal 6 field revisions
-migration_tags:
-  - Drupal 6
-load:
-  plugin: drupal_entity
-  bundle_migration: d6_node_type
-source:
-  plugin: d6_cck_field_revision
-process:
-  vid: vid
-destination:
-  plugin: entity_revision:node
-migration_dependencies:
-  required:
-    - d6_cck_field_values
-    - d6_node_revision
-dependencies:
-  config:
-    - migrate.migration.d6_cck_field_values
-    - migrate.migration.d6_node_revision
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml
deleted file mode 100644
index 0457ecf..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_cck_field_values
-label: Drupal 6 field values
-migration_tags:
-  - Drupal 6
-load:
-  plugin: drupal_entity
-  bundle_migration: d6_node_type
-source:
-  plugin: d6_cck_field_values
-process:
-  nid:
-    plugin: migration
-    migration: d6_node
-    source: nid
-destination:
-  plugin: entity:node
-migration_dependencies:
-  required:
-    - d6_node
-    - d6_field_formatter_settings
-    - d6_field_instance_widget_settings
-dependencies:
-  config:
-    - migrate.migration.d6_field_formatter_settings
-    - migrate.migration.d6_field_instance_widget_settings
-    - migrate.migration.d6_node
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml
deleted file mode 100644
index 94fb020..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-id: d6_comment
-label: Drupal 6 comments
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment
-  constants:
-    entity_type: node
-process:
-  cid: cid
-  pid:
-    plugin: migration
-    migration: d6_comment
-    source: pid
-  entity_id: nid
-  entity_type: 'constants/entity_type'
-  # field_name & comment_type is calculated in
-  # \Drupal\migrate_drupal\Plugin\migrate\source\d6\Comment::prepareRow()
-  field_name: field_name
-  comment_type: comment_type
-  subject: subject
-  uid: uid
-  name: name
-  mail: mail
-  homepage: homepage
-  hostname: hostname
-  created: timestamp
-  changed: timestamp
-  status: status #In D6, published=0. We reverse the value in prepareRow.
-  thread: thread
-  'comment_body/value': comment
-  'comment_body/format':
-    plugin: migration
-    migration: d6_filter_format
-    source: format
-destination:
-  plugin: entity:comment
-migration_dependencies:
-  required:
-    - d6_node
-    - d6_comment_type
-    - d6_user
-    - d6_comment_entity_display
-    - d6_comment_entity_form_display
-    - d6_filter_format
-dependencies:
-  config:
-    - migrate.migration.d6_comment_entity_display
-    - migrate.migration.d6_comment_entity_form_display
-    - migrate.migration.d6_comment_type
-    - migrate.migration.d6_filter_format
-    - migrate.migration.d6_node
-    - migrate.migration.d6_user
-  module:
-    - comment
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml
deleted file mode 100644
index 99e373b..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_comment_entity_display
-label: Drupal 6 comment display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable
-  constants:
-    entity_type: node
-    field_name: comment
-    view_mode: default
-    options:
-      label: hidden
-      type: comment_default
-      weight: 20
-process:
-  entity_type: 'constants/entity_type'
-  field_name: 'constants/field_name'
-  view_mode: 'constants/view_mode'
-  options: 'constants/options'
-
-  bundle: node_type
-destination:
-  plugin: component_entity_display
-migration_dependencies:
-  required:
-    - d6_comment_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_comment_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml
deleted file mode 100644
index 059517f..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-id: d6_comment_entity_form_display
-label: Drupal 6 comment field form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable
-  constants:
-    entity_type: node
-    field_name: comment
-    form_mode: default
-    options:
-      type: comment_default
-      weight: 20
-process:
-  entity_type: 'constants/entity_type'
-  field_name: 'constants/field_name'
-  form_mode: 'constants/form_mode'
-  options: 'constants/options'
-
-  bundle: node_type
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_comment_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_comment_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml
deleted file mode 100644
index 8a36272..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-id: d6_comment_entity_form_display_subject
-label: Drupal 6 comment subject form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable_per_comment_type
-  constants:
-    entity_type: comment
-    field_name: subject
-    form_mode: default
-    options:
-      type: string_textfield
-      weight: 10
-process:
-  entity_type: 'constants/entity_type'
-  field_name: 'constants/field_name'
-  form_mode: 'constants/form_mode'
-  options: 'constants/options'
-
-  hidden:
-    plugin: static_map
-    source: comment_type
-    default_value: false
-    map:
-      comment_no_subject: true # Hide subject field
-      comment: false
-  bundle: comment_type
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_comment_type
-dependencies:
-  config:
-    - migrate.migration.d6_comment_type
-  module:
-    - comment
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml
deleted file mode 100644
index ab22f23..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-id: d6_comment_field
-label: Drupal 6 comment field configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable_per_comment_type
-  constants:
-    entity_type: node
-    type: comment
-process:
-  entity_type: 'constants/entity_type'
-  field_name: comment_type
-  type: 'constants/type'
-  'settings/comment_type': comment_type
-destination:
-  plugin: md_entity:field_storage_config
-migration_dependencies:
-  required:
-    - d6_comment_type
-dependencies:
-  config:
-    - migrate.migration.d6_comment_type
-  module:
-    - comment
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml
deleted file mode 100644
index 669ea94..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-id: d6_comment_field_instance
-label: Drupal 6 comment field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable
-  constants:
-    entity_type: node
-    label: Comments
-    required: true
-process:
-  entity_type: 'constants/entity_type'
-  label: 'constants/label'
-  required: 'constants/required'
-
-  field_name:
-    plugin: static_map
-    source: comment_subject_field
-    default_value: comment
-    map:
-      0: comment_no_subject
-  bundle: node_type
-  'default_value/0/status': comment
-  'settings/default_mode': comment_default_mode
-  'settings/per_page': comment_default_per_page
-  'settings/anonymous': comment_anonymous
-  'settings/form_location': comment_form_location
-  'settings/preview': comment_preview
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_comment_field
-    - d6_node_type
-dependencies:
-  config:
-    - migrate.migration.d6_comment_field
-    - migrate.migration.d6_node_type
-  module:
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml
deleted file mode 100644
index 35dfde0..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-id: d6_comment_type
-label: Drupal 6 comment type
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_comment_variable_per_comment_type
-  constants:
-    entity_type: node
-process:
-  target_entity_type_id: 'constants/entity_type'
-  id: comment_type
-  label: label
-  description: description
-destination:
-  plugin: entity:comment_type
-dependencies:
-  module:
-    - comment
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml
deleted file mode 100644
index cab9f3b..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-id: d6_contact_category
-label: Drupal 6 contact category configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_contact_category
-process:
-  id:
-    -
-      plugin: machine_name
-      source: category
-    -
-      plugin: dedupe_entity
-      entity_type: user_role
-      field: cid
-      length: 32
-  label: category
-  recipients: recipients
-  reply: reply
-  weight: weight
-destination:
-  plugin: entity:contact_form
-dependencies:
-  module:
-    - contact
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml
deleted file mode 100644
index d0e4a3d..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-id: d6_contact_settings
-label: Drupal 6 contact configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_contact_settings
-  variables:
-    - contact_default_status
-    - contact_hourly_threshold
-process:
-  user_default_enabled: contact_default_status
-  'flood/limit': contact_hourly_threshold
-  default_form:
-    plugin: migration
-    migration: d6_contact_category
-    source: default_category
-destination:
-  plugin: config
-  config_name: contact.settings
-migration_dependencies:
-  required:
-    - d6_contact_category
-dependencies:
-  config:
-    - migrate.migration.d6_contact_category
-  module:
-    - contact
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml
deleted file mode 100644
index be6cebf..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-id: d6_custom_block
-label: Drupal 6 custom blocks
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_box
-  constants:
-    type: basic
-process:
-  id: bid
-  type: 'constants/type'
-  info: info
-  'body/format':
-    plugin: migration
-    migration: d6_filter_format
-    source: format
-  'body/value': body
-destination:
-  plugin: entity:block_content
-  no_stub: true
-migration_dependencies:
-  required:
-    - d6_filter_format
-    - d6_block_content_body_field
-dependencies:
-  config:
-    - migrate.migration.d6_block_content_body_field
-    - migrate.migration.d6_filter_format
-  module:
-    - block_content
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml
deleted file mode 100644
index 44448e6..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-id: d6_date_formats
-label: Drupal 6 date format configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable_multirow
-  variables:
-    - date_format_long
-    - date_format_medium
-    - date_format_short
-process:
-  id:
-    plugin: static_map
-    source: name
-    map:
-      date_format_long: long
-      date_format_short: short
-      date_format_medium: medium
-  pattern: value
-destination:
-  plugin: entity:date_format
-dependencies:
-  module:
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml
deleted file mode 100644
index fb387f5..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_dblog_settings
-label: Drupal 6 database logging configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - dblog_row_limit
-process:
-  row_limit: dblog_row_limit
-destination:
-  plugin: config
-  config_name: dblog.settings
-dependencies:
-  module:
-    - dblog
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml
deleted file mode 100644
index 191c538..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml
+++ /dev/null
@@ -1,138 +0,0 @@
-id: d6_field
-label: Drupal 6 field configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_field
-  constants:
-    entity_type: node
-    langcode: en
-process:
-  entity_type: 'constants/entity_type'
-  status: active
-  langcode: 'constants/langcode'
-  field_name: field_name
-  type:
-    -
-      plugin: static_map
-      source:
-        - type
-        - widget_type
-      map:
-        number_integer:
-          number: integer
-          optionwidgets_select: list_integer
-          optionwidgets_buttons: list_integer
-          optionwidgets_onoff: boolean
-        number_decimal:
-          number: decimal
-          optionwidgets_select: list_float
-          optionwidgets_buttons: list_float
-          optionwidgets_onoff: boolean
-        number_float:
-          number: float
-          optionwidgets_select: list_float
-          optionwidgets_buttons: list_float
-          optionwidgets_onoff: boolean
-        text:
-          optionwidgets_select: list_string
-          optionwidgets_buttons: list_string
-          optionwidgets_onoff: boolean
-          text_textfield: text
-          text_textarea: text_long
-        email:
-          email_textfield: email
-        filefield:
-          imagefield_widget: image
-          filefield_widget: file
-        date:
-          date_select: datetime
-        datestamp:
-          date_select: datetime
-        datetime:
-          date_select: datetime
-        fr_phone:
-          phone_textfield: telephone
-        be_phone:
-          phone_textfield: telephone
-        it_phone:
-          phone_textfield: telephone
-        el_phone:
-          phone_textfield: telephone
-        ch_phone:
-          phone_textfield: telephone
-        ca_phone:
-          phone_textfield: telephone
-        cr_phone:
-          phone_textfield: telephone
-        pa_phone:
-          phone_textfield: telephone
-        gb_phone:
-          phone_textfield: telephone
-        ru_phone:
-          phone_textfield: telephone
-        ua_phone:
-          phone_textfield: telephone
-        es_phone:
-          phone_textfield: telephone
-        au_phone:
-          phone_textfield: telephone
-        cs_phone:
-          phone_textfield: telephone
-        hu_phone:
-          phone_textfield: telephone
-        pl_phone:
-          phone_textfield: telephone
-        nl_phone:
-          phone_textfield: telephone
-        se_phone:
-          phone_textfield: telephone
-        za_phone:
-          phone_textfield: telephone
-        il_phone:
-          phone_textfield: telephone
-        nz_phone:
-          phone_textfield: telephone
-        br_phone:
-          phone_textfield: telephone
-        cl_phone:
-          phone_textfield: telephone
-        cn_phone:
-          phone_textfield: telephone
-        hk_phone:
-          phone_textfield: telephone
-        mo_phone:
-          phone_textfield: telephone
-        ph_phone:
-          phone_textfield: telephone
-        sg_phone:
-          phone_textfield: telephone
-        jo_phone:
-          phone_textfield: telephone
-        eg_phone:
-          phone_textfield: telephone
-        pk_phone:
-          phone_textfield: telephone
-        int_phone:
-          phone_textfield: telephone
-  cardinality:
-    plugin: static_map
-    bypass: true
-    source: multiple
-    map:
-      0: 1
-      1: -1
-  settings:
-    plugin: field_settings
-    source:
-      - @type
-      - global_settings
-      - widget_settings
-
-destination:
-  plugin: md_entity:field_storage_config
-dependencies:
-  module:
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml
deleted file mode 100644
index 39401f8..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml
+++ /dev/null
@@ -1,265 +0,0 @@
-id: d6_field_formatter_settings
-label: Drupal 6 field formatter configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_field_instance_per_view_mode
-  constants:
-    entity_type: node
-    third_party_settings: { }
-
-process:
-  # We skip field types that don't exist because they weren't migrated by the
-  # field migration.
-  field_type_exists:
-    -
-      plugin: migration
-      migration: d6_field
-      source:
-        - field_name
-    -
-      plugin: extract
-      index:
-        - 1
-    -
-      plugin: skip_on_empty
-      method: row
-  entity_type: 'constants/entity_type'
-  bundle: type_name
-  view_mode:
-    -
-      plugin: migration
-      migration: d6_view_modes
-      source:
-        - view_mode
-    -
-      plugin: extract
-      index:
-        - 1
-    -
-      plugin: static_map
-      bypass: true
-      map:
-        full: default
-  field_name: field_name
-  "options/label": label
-  "options/weight": weight
-  "options/type":
-      -
-        plugin: static_map
-        bypass: true
-        source:
-          - type
-          - 'display_settings/format'
-        map:
-          text:
-            default: text_default
-            trimmed: text_trimmed
-            plain: basic_string
-          number_integer:
-            default: number_integer
-            us_0: number_integer
-            be_0: number_integer
-            fr_0: number_integer
-            unformatted: number_unformatted
-          number_float:
-            default: number_decimal
-            us_0: number_decimal
-            us_1: number_decimal
-            us_2: number_decimal
-            be_0: number_decimal
-            be_1: number_decimal
-            be_2: number_decimal
-            fr_0: number_decimal
-            fr_1: number_decimal
-            fr_2: number_decimal
-            unformatted: number_unformatted
-          number_decimal:
-            default: number_decimal
-            us_0: number_decimal
-            us_1: number_decimal
-            us_2: number_decimal
-            be_0: number_decimal
-            be_1: number_decimal
-            be_2: number_decimal
-            fr_0: number_decimal
-            fr_1: number_decimal
-            fr_2: number_decimal
-            unformatted: number_unformatted
-          email:
-            default: email_mailto
-            spamspan: email_mailto
-            contact: email_mailto
-            plain: basic_string
-          filefield:
-            default: file_default
-            url_plain: file_url_plain
-            path_plain: file_url_plain
-            image_plain: image
-            image_nodelink: image
-            image_imagelink: image
-          fr_phone:
-            default: basic_string
-          be_phone:
-            default: basic_string
-          it_phone:
-            default: basic_string
-          el_phone:
-            default: basic_string
-          ch_phone:
-            default: basic_string
-          ca_phone:
-            default: basic_string
-          cr_phone:
-            default: basic_string
-          pa_phone:
-            default: basic_string
-          gb_phone:
-            default: basic_string
-          ru_phone:
-            default: basic_string
-          ua_phone:
-            default: basic_string
-          es_phone:
-            default: basic_string
-          au_phone:
-            default: basic_string
-          cs_phone:
-            default: basic_string
-          hu_phone:
-            default: basic_string
-          pl_phone:
-            default: basic_string
-          nl_phone:
-            default: basic_string
-          se_phone:
-            default: basic_string
-          za_phone:
-            default: basic_string
-          il_phone:
-            default: basic_string
-          nz_phone:
-            default: basic_string
-          br_phone:
-            default: basic_string
-          cl_phone:
-            default: basic_string
-          cn_phone:
-            default: basic_string
-          hk_phone:
-            default: basic_string
-          mo_phone:
-            default: basic_string
-          ph_phone:
-            default: basic_string
-          sg_phone:
-            default: basic_string
-          jo_phone:
-            default: basic_string
-          eg_phone:
-            default: basic_string
-          pk_phone:
-            default: basic_string
-          int_phone:
-            default: basic_string
-      -
-        plugin: field_type_defaults
-  "options/settings":
-    -
-      plugin: static_map
-      bypass: true
-      source:
-        - module
-        - 'display_settings/format'
-      map:
-        link:
-          default:
-            trim_length: '80'
-            url_only: 0
-            url_plain: 0
-            rel: 0
-            target: 0
-          plain:
-            trim_length: '80'
-            url_only: 1
-            url_plain: 1
-            rel: 0
-            target: 0
-          absolute:
-            trim_length: '80'
-            url_only: 1
-            url_plain: 1
-            rel: 0
-            target: 0
-          title_plain: #can't support title as plain text.
-            trim_length: '80'
-            url_only: 1
-            url_plain: 1
-            rel: 0
-            target: 0
-          url:
-            trim_length: '80'
-            url_only: 1
-            url_plain: 0
-            rel: 0
-            target: 0
-          short: #can't support hardcoded link text?
-            trim_length: '80'
-            url_only: 0
-            url_plain: 0
-            rel: 0
-            target: 0
-          label: # can't support label as link text?
-            trim_length: '80'
-            url_only: 0
-            url_plain: 0
-            rel: 0
-            target: 0
-          separate:
-            trim_length: '80'
-            rel: 0
-            target: 0
-        filefield:
-          image_plain:
-            image_style: ''
-            image_link: ''
-          image_nodelink:
-            image_style: ''
-            image_link: content
-          image_imagelink:
-            image_style: ''
-            image_link: file
-        date:
-          default:
-            format_type: fallback
-          format_interval:
-            format_type: fallback
-          long:
-            format_type: long
-          medium:
-            format_type: medium
-          short:
-            format_type: short
-        text:
-          trimmed:
-            trim_length: 600
-        string:
-          default:
-            link_to_entity: false
-    -
-      plugin: field_formatter_settings_defaults
-  "options/third_party_settings": 'constants/third_party_settings'
-
-destination:
-  plugin: component_entity_display
-migration_dependencies:
-  required:
-    - d6_field_instance
-    - d6_view_modes
-dependencies:
-  config:
-    - migrate.migration.d6_field_instance
-    - migrate.migration.d6_view_modes
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml
deleted file mode 100644
index 5710433..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-id: d6_field_instance
-label: Drupal 6 field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_field_instance
-  constants:
-    entity_type: node
-
-process:
-  # We skip field types that don't exist because they weren't migrated by the
-  # field migration.
-  field_type_exists:
-    -
-      plugin: migration
-      migration: d6_field
-      source:
-        - field_name
-    -
-      plugin: extract
-      index:
-        - 1
-    -
-      plugin: skip_on_empty
-      method: row
-  entity_type: 'constants/entity_type'
-  field_name: field_name
-  bundle: type_name
-  label: label
-  description: description
-  required: required
-  status: active
-  settings:
-    plugin: d6_field_field_settings
-    source:
-      - widget_type
-      - widget_settings
-      - global_settings
-
-  default_value_callback: ''
-  default_value:
-    plugin: d6_field_instance_defaults
-    source:
-      - widget_type
-      - widget_settings
-
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_node_type
-    - d6_field
-dependencies:
-  config:
-    - migrate.migration.d6_field
-    - migrate.migration.d6_node_type
-  module:
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml
deleted file mode 100644
index a343abe..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-id: d6_field_instance_widget_settings
-label: Drupal 6 field instance widget configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_field_instance_per_form_display
-  constants:
-    entity_type: node
-    form_mode: default
-    third_party_settings: { }
-
-process:
-  # We skip field types that don't exist because they weren't migrated by the
-  # field migration.
-  field_type_exists:
-    -
-      plugin: migration
-      migration: d6_field
-      source:
-        - field_name
-    -
-      plugin: extract
-      index:
-        - 1
-    -
-      plugin: skip_on_empty
-      method: row
-  bundle: type_name
-  form_mode: 'constants/form_mode'
-  field_name: field_name
-  entity_type: 'constants/entity_type'
-  'options/weight': weight
-  'options/type':
-    type:
-      plugin: static_map
-      bypass: true
-      source: widget_type
-      map:
-        text_textfield: text_textfield
-        number: number
-        email_textfield: email_default
-        date_select: datetime_default
-        date_text: datetime_default
-        filefield_widget: file_generic
-        imagefield_widget: image_image
-        phone_textfield: telephone_default
-        optionwidgets_onoff: boolean_checkbox
-        optionwidgets_buttons: options_buttons
-        optionwidgets_select: options_select
-  'options/settings':
-    -
-      plugin: field_instance_widget_settings
-      source:
-        - widget_type
-        - widget_settings
-  'options/third_party_settings': 'constants/third_party_settings'
-
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml
deleted file mode 100644
index 508d0bb..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-# Every migration that saves into {file_managed} must have the d6_file
-# migration as an optional dependency to ensure d6_file runs first.
-id: d6_file
-label: Drupal 6 files
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_file
-process:
-  fid: fid
-  filename: filename
-  uri:
-    plugin: file_uri
-    source:
-      - filepath
-      - file_directory_path
-      - temp_directory_path
-      - is_public
-  filemime: filemime
-  filesize: filesize
-  status: status
-  changed: timestamp
-  uid: uid
-destination:
-  plugin: entity:file
-dependencies:
-  module:
-    - file
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml
deleted file mode 100644
index f2ca170..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-id: d6_file_settings
-label: Drupal 6 file configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - file_description_type
-    - file_description_length
-    - file_icon_directory
-process:
-  'description/type': file_description_type
-  'description/length': file_description_length
-  'icon/directory': file_icon_directory
-destination:
-  plugin: config
-  config_name: file.settings
-dependencies:
-  module:
-    - file
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml
deleted file mode 100644
index 9efaf7a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-id: d6_filter_format
-label: Drupal 6 filter format configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_filter_format
-process:
-  format:
-    -
-      plugin: machine_name
-      source: name
-    -
-      plugin: dedupe_entity
-      entity_type: filter_format
-      field: format
-      length: 32
-  name: name
-  cache: cache
-  filters:
-    plugin: iterator
-    source: filters
-    key: @id
-    process:
-      id:
-        plugin: static_map
-        default_value: filter_null
-        source:
-          - module
-          - delta
-        map:
-          filter:
-            - filter_html
-            - filter_autop
-            - filter_url
-            - filter_htmlcorrector
-            - filter_html_escape
-          php:
-            - php_code
-      settings: settings
-      status:
-        plugin: default_value
-        default_value: true
-destination:
-  plugin: entity:filter_format
-  no_stub: true
-dependencies:
-  module:
-    - filter
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml
deleted file mode 100644
index 72e4814..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-id: d6_forum_settings
-label: Drupal 6 forum configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - forum_hot_topic
-    - forum_per_page
-    - forum_order
-    - forum_block_num_0
-    - forum_block_num_1
-    - forum_nav_vocabulary
-process:
-  'block/active/limit': forum_block_num_0
-  'block/new/limit': forum_block_num_1
-  'topics/hot_threshold': forum_hot_topic
-  'topics/page_limit': forum_per_page
-  'topics/order': forum_order
-  vocabulary:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: forum_nav_vocabulary
-destination:
-  plugin: config
-  config_name: forum.settings
-migration_dependencies:
-  required:
-    - d6_taxonomy_vocabulary
-dependencies:
-  config:
-    - migrate.migration.d6_taxonomy_vocabulary
-  module:
-    - forum
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml
deleted file mode 100644
index a38bd92..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: d6_locale_settings
-label: Drupal 6 locale configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - locale_cache_strings
-    - locale_js_directory
-process:
-  cache_strings: locale_cache_strings
-  'javascript/directory': locale_js_directory
-destination:
-  plugin: config
-  config_name: locale.settings
-dependencies:
-  module:
-    - locale
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml
deleted file mode 100644
index 4def0bf..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-id: d6_menu
-label: Drupal 6 menus
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_menu
-process:
-  id: menu_name
-  label: title
-  description: description
-destination:
-  plugin: entity:menu
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml
deleted file mode 100644
index c98a3a7..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-id: d6_menu_links
-label: Drupal 6 menu links
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_menu_link
-  constants:
-    bundle: menu_link_content
-process:
-  id: mlid
-  bundle: 'constants/bundle'
-  title: link_title
-  description:
-    plugin: extract
-    source:
-      - options
-    index:
-      - 0
-      - attributes
-      - title
-  menu_name:
-    plugin: migration
-    migration: d6_menu
-    source: menu_name
-  'link/uri':
-    plugin: internal_uri
-    source:
-      - link_path
-  'link/options': options
-  external: external
-  weight: weight
-  expanded: expanded
-  enabled: enabled
-  parent:
-    -
-      plugin: skip_on_empty
-      method: process
-      source: plid
-    -
-      plugin: migration
-      migration: d6_menu_links
-  changed: updated
-destination:
-  plugin: entity:menu_link_content
-migration_dependencies:
-  required:
-    - d6_menu
-dependencies:
-  config:
-    - migrate.migration.d6_menu
-  module:
-    - menu_link_content
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml
deleted file mode 100644
index 8ec039d..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-id: d6_menu_settings
-label: Drupal 6 menu configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - menu_primary_links_source
-    - menu_secondary_links_source
-    - menu_override_parent_selector
-process:
-  main_links: menu_primary_links_source
-  secondary_links: menu_secondary_links_source
-  override_parent_selector: menu_override_parent_selector
-destination:
-  plugin: config
-  config_name: menu_ui.settings
-dependencies:
-  module:
-    - menu_ui
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml
deleted file mode 100644
index 4092a25..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-id: d6_node
-label: Drupal 6 nodes
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node
-process:
-  nid: nid
-  vid: vid
-  type: type
-  langcode:
-    plugin: default_value
-    source: language
-    default_value: "und"
-  title: title
-  uid: node_uid
-# Core migrations are designed for replacing the upgrade path and therefore
-# all node and user ids are preserved. For that reason we do not need to look-up
-# the user id for the node. If you're writing a custom migration, user ids will
-# vary from the source site and a lookup as shown below will be required.
-#    plugin: migration
-#    migration: d6_user
-#    source: node_uid
-  status: status
-  created: created
-  changed: changed
-  promote: promote
-  sticky: sticky
-  'body/format':
-    plugin: migration
-    migration: d6_filter_format
-    source: format
-  'body/value': body
-  'body/summary': teaser
-  revision_uid: revision_uid
-  revision_log: log
-  revision_timestamp: timestamp
-
-#  unmapped d6 fields.
-#  tnid
-#  translate
-#  moderate
-#  comment
-
-destination:
-  plugin: entity:node
-migration_dependencies:
-  required:
-    - d6_user
-    - d6_node_type
-    - d6_node_settings
-    - d6_filter_format
-  optional:
-    - d6_field_instance_widget_settings
-    - d6_field_formatter_settings
-dependencies:
-  config:
-    - migrate.migration.d6_filter_format
-    - migrate.migration.d6_node_settings
-    - migrate.migration.d6_node_type
-    - migrate.migration.d6_user
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml
deleted file mode 100644
index 42118b3..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-id: d6_node_revision
-label: Drupal 6 node revisions
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node_revision
-process:
-  nid: nid
-  vid: vid
-  type: type
-  langcode:
-    plugin: default_value
-    source: language
-    default_value: "und"
-  title: title
-  uid: node_uid
-  status: status
-  created: created
-  changed: changed
-  promote: promote
-  sticky: sticky
-  'body/format':
-    plugin: migration
-    migration: d6_filter_format
-    source: format
-  'body/value': body
-  'body/summary': teaser
-  revision_uid: revision_uid
-  revision_log: log
-  revision_timestamp: timestamp
-
-#  unmapped d6 fields.
-#  tnid
-#  translate
-#  moderate
-#  comment
-
-destination:
-  plugin: entity_revision:node
-migration_dependencies:
-  required:
-    - d6_node
-dependencies:
-  config:
-    - migrate.migration.d6_node
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml
deleted file mode 100644
index c7f6d24..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_node_setting_promote
-label: Drupal 6 node type 'promote' setting
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node_type
-  constants:
-    entity_type: node
-    field_name: promote
-process:
-  entity_type: 'constants/entity_type'
-  bundle: type
-  field_name: 'constants/field_name'
-  'default_value/0/value': 'options/promote'
-destination:
-  plugin: entity:base_field_override
-migration_dependencies:
-  required:
-    - d6_node_type
-dependencies:
-  config:
-    - migrate.migration.d6_node_type
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml
deleted file mode 100644
index ec7afd6..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_node_setting_status
-label: Drupal 6 node type 'status' setting
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node_type
-  constants:
-    entity_type: node
-    field_name: status
-process:
-  entity_type: 'constants/entity_type'
-  bundle: type
-  field_name: 'constants/field_name'
-  'default_value/0/value': 'options/status'
-destination:
-  plugin: entity:base_field_override
-migration_dependencies:
-  required:
-    - d6_node_type
-dependencies:
-  config:
-    - migrate.migration.d6_node_type
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml
deleted file mode 100644
index 4f1b613..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_node_setting_sticky
-label: Drupal 6 node type 'sticky' setting
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node_type
-  constants:
-    entity_type: node
-    field_name: sticky
-process:
-  entity_type: 'constants/entity_type'
-  bundle: type
-  field_name: 'constants/field_name'
-  'default_value/0/value': 'options/sticky'
-destination:
-  plugin: entity:base_field_override
-migration_dependencies:
-  required:
-    - d6_node_type
-dependencies:
-  config:
-    - migrate.migration.d6_node_type
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml
deleted file mode 100644
index 336383a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_node_settings
-label: Drupal 6 node configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - node_admin_theme
-process:
-  use_admin_theme: node_admin_theme
-destination:
-  plugin: config
-  config_name: node.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml
deleted file mode 100644
index 7bd24ac..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-id: d6_node_type
-label: Drupal 6 node type configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_node_type
-  constants:
-    preview: 1 # DRUPAL_OPTIONAL
-    create_body: false
-process:
-  type: type
-  name: name
-  module: module
-  description: description
-  help: help
-  title_label: title_label
-  'preview_mode': 'constants/preview'
-  'display_submitted': display_submitted
-  'new_revision': 'options/revision'
-  'settings/node/options': options
-  create_body: has_body
-  create_body_label: body_label
-destination:
-  plugin: entity:node_type
-dependencies:
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml
deleted file mode 100644
index 047de4d..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-id: d6_profile_values
-label: Drupal 6 profile values
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_profile_field_values
-load:
-  plugin: drupal_entity
-process:
-  uid: uid
-destination:
-  plugin: entity:user
-migration_dependencies:
-  required:
-    - d6_user
-    - d6_user_profile_field_instance
-    - d6_user_profile_entity_display
-    - d6_user_profile_entity_form_display
-dependencies:
-  config:
-    - migrate.migration.d6_user
-    - migrate.migration.d6_user_profile_entity_display
-    - migrate.migration.d6_user_profile_entity_form_display
-    - migrate.migration.d6_user_profile_field_instance
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml
deleted file mode 100644
index 6c05d1f..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_search_page
-label: Drupal 6 search page configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - node_rank_comments
-    - node_rank_promote
-    - node_rank_recent
-    - node_rank_relevance
-    - node_rank_sticky
-    - node_rank_views
-  constants:
-    id: node_search
-    path: node
-    plugin: node_search
-process:
-  id: 'constants/id'
-  path: 'constants/path'
-  plugin: 'constants/plugin'
-  'configuration/rankings':
-    plugin: d6_search_configuration_rankings
-destination:
-  plugin: entity:search_page
-dependencies:
-  module:
-    - migrate_drupal
-    - search
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml
deleted file mode 100644
index 8e832e4..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-id: d6_search_settings
-label: Drupal 6 search configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  constants:
-    status: true
-  variables:
-    - minimum_word_size
-    - overlap_cjk
-    - search_cron_limit
-    - search_tag_weights
-    - search_and_or_limit
-process:
-  'index/minimum_word_size': minimum_word_size
-  'index/overlap_cjk': overlap_cjk
-  'index/cron_limit': search_cron_limit
-  logging: 'constants/status'
-destination:
-  plugin: config
-  config_name: search.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - search
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml
deleted file mode 100644
index 0791f11..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_simpletest_settings
-label: Drupal 6 simpletest configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - simpletest_clear_results
-    - simpletest_httpauth_method
-    - simpletest_httpauth_password
-    - simpletest_httpauth_username
-    - simpletest_verbose
-process:
-  clear_results: simpletest_clear_results
-  'httpauth/method': simpletest_httpauth_method
-  'httpauth/password': simpletest_httpauth_password
-  'httpauth/username': simpletest_httpauth_username
-  verbose: simpletest_verbose
-destination:
-  plugin: config
-  config_name: simpletest.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - simpletest
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml
deleted file mode 100644
index b223e36..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-id: d6_statistics_settings
-label: Drupal 6 statistics configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - statistics_enable_access_log
-    - statistics_flush_accesslog_timer
-    - statistics_count_content_views
-process:
-  'access_log/enabled': statistics_enable_access_log
-  'access_log/max_lifetime': statistics_flush_accesslog_timer
-  'count_content_views': statistics_count_content_views
-destination:
-  plugin: config
-  config_name: statistics.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - statistics
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml
deleted file mode 100644
index e962856..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: d6_syslog_settings
-label: Drupal 6 system log configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - syslog_identity
-    - syslog_facility
-process:
-  identity: syslog_identity
-  facility: syslog_facility
-destination:
-  plugin: config
-  config_name: syslog.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - syslog
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml
deleted file mode 100644
index 47be135..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-id: d6_system_cron
-label: Drupal 6 cron settings
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - cron_threshold_warning
-    - cron_threshold_error
-    - cron_last
-process:
-  'threshold/requirements_warning': cron_threshold_warning
-  'threshold/requirements_error': cron_threshold_error
-destination:
-  plugin: config
-  config_name: system.cron
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml
deleted file mode 100644
index 925b5a9..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-id: d6_system_file
-label: Drupal 6 file system configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - file_directory_temp
-    - allow_insecure_uploads
-process:
-  'path/temporary': file_directory_temp
-  allow_insecure_uploads:
-    plugin: static_map
-    source: allow_insecure_uploads
-    map:
-      0: FALSE
-      1: TRUE
-destination:
-  plugin: config
-  config_name: system.file
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml
deleted file mode 100644
index 8e36db7..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_system_filter
-label: Drupal 6 filter configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - filter_allowed_protocols
-process:
-  protocols: filter_allowed_protocols
-destination:
-  plugin: config
-  config_name: system.filter
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml
deleted file mode 100644
index 9581291..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_system_image
-label: Drupal 6 image toolkit configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - image_toolkit
-process:
-  toolkit: image_toolkit
-destination:
-  plugin: config
-  config_name: system.image
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml
deleted file mode 100644
index 583ca5b..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_system_image_gd
-label: Drupal 6 image quality configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - image_jpeg_quality
-process:
-  jpeg_quality: image_jpeg_quality
-destination:
-  plugin: config
-  config_name: system.image.gd
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml
deleted file mode 100644
index b75bc7e..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_system_logging
-label: Drupal 6 system logging
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - error_level
-process:
-  error_level:
-    plugin: static_map
-    source: error_level
-    default_value: all
-    map:
-      0: hide
-      1: some
-      2: all
-      3: verbose
-destination:
-  plugin: config
-  config_name: system.logging
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml
deleted file mode 100644
index 0d93cd1..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_system_maintenance
-label: Drupal 6 maintenance page configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - site_offline_message
-process:
-  message: site_offline_message
-destination:
-  plugin: config
-  config_name: system.maintenance
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml
deleted file mode 100644
index a10edfd..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-id: d6_system_performance
-label: Drupal 6 performance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - preprocess_css
-    - preprocess_js
-    - cache_lifetime
-    - cache
-    - page_compression
-process:
-  'css/preprocess': preprocess_css
-  'js/preprocess': preprocess_js
-  'cache/page/max_age': cache_lifetime
-  'response/gzip': page_compression
-destination:
-  plugin: config
-  config_name: system.performance
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml
deleted file mode 100644
index 7f5d3d4..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: d6_system_rss
-label: Drupal 6 RSS configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - feed_default_items
-    - feed_item_length
-process:
-  'items/limit': feed_default_items
-  'items/view_mode': feed_item_length
-destination:
-  plugin: config
-  config_name: system.rss
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml
deleted file mode 100644
index c4920fa..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-id: d6_system_site
-label: Drupal 6 site configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - site_name
-    - site_mail
-    - site_slogan
-    - site_frontpage
-    - site_403
-    - site_404
-    - drupal_weight_select_max
-    - admin_compact_mode
-process:
-  name: site_name
-  mail: site_mail
-  slogan: site_slogan
-  'page/front': site_frontpage
-  'page/403': site_403
-  'page/404': site_404
-  weight_select_max: drupal_weight_select_max
-  admin_compact_mode: admin_compact_mode
-destination:
-  plugin: config
-  config_name: system.site
-dependencies:
-  module:
-    - migrate_drupal
-    - system
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml
deleted file mode 100644
index 094e9d7..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: d6_taxonomy_settings
-label: Drupal 6 taxonomy configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - taxonomy_override_selector
-    - taxonomy_terms_per_page_admin
-process:
-  override_selector: taxonomy_override_selector
-  terms_per_page_admin: taxonomy_terms_per_page_admin
-destination:
-  plugin: config
-  config_name: taxonomy.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - taxonomy
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml
deleted file mode 100644
index c70d3c8..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-id: d6_taxonomy_term
-label: Drupal 6 taxonomy terms
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_term
-process:
-  tid: tid
-  vid:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: vid
-  name: name
-  description: description
-  weight: weight
-  parent:
-    -
-      plugin: skip_on_empty
-      method: process
-      source: parent
-    -
-      plugin: migration
-      migration: d6_taxonomy_term
-  changed: timestamp
-destination:
-  plugin: entity:taxonomy_term
-migration_dependencies:
-  required:
-    - d6_taxonomy_vocabulary
-dependencies:
-  config:
-    - migrate.migration.d6_taxonomy_vocabulary
-  module:
-    - migrate_drupal
-    - taxonomy
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml
deleted file mode 100644
index 1a9cb9c..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-id: d6_taxonomy_vocabulary
-label: Drupal 6 taxonomy vocabularies
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_vocabulary
-process:
-  vid:
-    -
-      plugin: machine_name
-      source: name
-    -
-      plugin: dedupe_entity
-      entity_type: taxonomy_vocabulary
-      field: vid
-      length: 32
-  label: name
-  name: name
-  description: description
-  hierarchy: hierarchy
-  weight: weight
-destination:
-  plugin: entity:taxonomy_vocabulary
-dependencies:
-  module:
-    - migrate_drupal
-    - taxonomy
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml
deleted file mode 100644
index 6d0befe..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-id: d6_term_node
-label: Drupal 6 term/node relationships
-migration_tags:
-  - Drupal 6
-load:
-  plugin: d6_term_node
-
-source:
-  plugin: d6_term_node
-
-process:
-  nid: nid
-  type: type
-  # The actual field name is dynamic and will be added by the load plugin.
-
-destination:
-  plugin: entity:node
-migration_dependencies:
-  required:
-    - d6_vocabulary_entity_display
-    - d6_vocabulary_entity_form_display
-    - d6_node
-dependencies:
-  config:
-    - migrate.migration.d6_node
-    - migrate.migration.d6_vocabulary_entity_display
-    - migrate.migration.d6_vocabulary_entity_form_display
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml
deleted file mode 100644
index 9193738..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_term_node_revision
-label: Drupal 6 term/node relationship revisions
-migration_tags:
-  - Drupal 6
-load:
-  plugin: d6_term_node
-  bundle_migration: d6_vocabulary_field
-
-source:
-  plugin: d6_term_node_revision
-
-process:
-  vid: vid
-  type: type
-  # The actual field name is dynamic and will be added by the load plugin.
-
-destination:
-  plugin: entity_revision:node
-migration_dependencies:
-  required:
-    - d6_term_node
-    - d6_node_revision
-dependencies:
-  config:
-    - migrate.migration.d6_node_revision
-    - migrate.migration.d6_term_node
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml
deleted file mode 100644
index 56d3303..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_text_settings
-label: Drupal 6 teaser length configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - teaser_length
-process:
-  default_summary_length: teaser_length
-destination:
-  plugin: config
-  config_name: text.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - text
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml
deleted file mode 100644
index 8a61e51..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: d6_update_settings
-label: Drupal 6 update configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - update_max_fetch_attempts
-    - update_fetch_url
-    - update_notification_threshold
-    - update_notify_emails
-    - update_check_frequency
-process:
-  'fetch/max_attempts': update_max_fetch_attempts
-  'fetch/url': update_fetch_url
-  'notification/threshold': update_notification_threshold
-  'notification/emails': update_notify_emails
-  'check/interval_days': update_check_frequency
-destination:
-  plugin: config
-  config_name: update.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - update
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml
deleted file mode 100644
index fedda76..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-id: d6_upload
-label: Drupal 6 file uploads
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_upload
-
-process:
-  nid: nid
-  vid: vid
-  type: type
-  upload:
-    plugin: iterator
-    source: upload
-    process:
-      target_id:
-        plugin: migration
-        migration: d6_file
-        source: fid
-      display: list
-      description: description
-destination:
-  plugin: entity:node
-migration_dependencies:
-  required:
-    - d6_file
-    - d6_node
-dependencies:
-  config:
-    - migrate.migration.d6_file
-    - migrate.migration.d6_node
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml
deleted file mode 100644
index 8daf13f..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-id: d6_upload_entity_display
-label: Drupal 6 upload display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_upload_instance
-  constants:
-    entity_type: node
-    view_mode: default
-    name: upload
-    type: file_default
-    options:
-      label: hidden
-      settings: {}
-process:
-  entity_type: 'constants/entity_type'
-  bundle: node_type
-  view_mode: 'constants/view_mode'
-  field_name: 'constants/name'
-  type: 'constants/type'
-  options: 'constants/options'
-  'options/type': @type
-destination:
-  plugin: component_entity_display
-migration_dependencies:
-  required:
-    - d6_upload_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_upload_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml
deleted file mode 100644
index f248d1d..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-id: d6_upload_entity_form_display
-label: Drupal 6 upload form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_upload_instance
-  constants:
-    empty: {}
-    entity_type: node
-    form_mode: default
-    name: upload
-    type: file_generic
-    options:
-      settings:
-        progress_indicator: throbber
-process:
-  entity_type: 'constants/entity_type'
-  bundle: node_type
-  field_name: 'constants/name'
-  form_mode: 'constants/form_mode'
-  type: 'constants/type'
-  options: 'constants/options'
-  'options/type': @type
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_upload_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_upload_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml
deleted file mode 100644
index 15df33a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_upload_field
-label: Drupal 6 upload field configuration
-migration_tags:
-  - Drupal 6
-source:
-  # We do an empty source and a proper destination to have an idmap for
-  # migration_dependencies.
-  plugin: md_empty
-  provider: upload
-  constants:
-    entity_type: node
-    type: file
-    name: upload
-    cardinality: -1
-    display_field: true
-process:
-  entity_type: 'constants/entity_type'
-  field_name: 'constants/name'
-  type: 'constants/type'
-  cardinality: 'constants/cardinality'
-  'settings/display_field': 'constants/display_field'
-destination:
-  plugin: md_entity:field_storage_config
-dependencies:
-  module:
-    - field
-    - file
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml
deleted file mode 100644
index 7013512..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_upload_field_instance
-label: Drupal 6 upload field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_upload_instance
-  constants:
-    entity_type: node
-    name: upload
-    settings:
-      description_field: 1
-process:
-  entity_type: 'constants/entity_type'
-  bundle: node_type
-  field_name: 'constants/name'
-  settings: 'constants/settings'
-  'settings/file_extensions': file_extensions
-  'settings/max_filesize': max_filesize
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_upload_field
-    - d6_node_type
-dependencies:
-  config:
-    - migrate.migration.d6_node_type
-    - migrate.migration.d6_upload_field
-  module:
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml
deleted file mode 100644
index a8579e9..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-id: d6_url_alias
-label: Drupal 6 URL aliases
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_url_alias
-
-process:
-  source: src
-  alias: dst
-  langcode: language
-
-destination:
-  plugin: url_alias
-dependencies:
-  module:
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml
deleted file mode 100644
index b55e2ec..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-id: d6_user
-label: Drupal 6 user accounts
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user
-process:
-  uid: uid
-  name: name
-  pass: pass
-  mail: mail
-  created: created
-  access: access
-  login: login
-  status: status
-  timezone:
-    plugin: user_update_7002
-    source: timezone
-  preferred_langcode: language
-  init: init
-  roles:
-    plugin: migration
-    migration: d6_user_role
-    source: roles
-  user_picture:
-    plugin: d6_user_picture
-    source: uid
-destination:
-  plugin: entity:user
-  md5_passwords: true
-migration_dependencies:
-  required:
-    - d6_user_role
-  optional:
-    - d6_user_picture_file
-    - d6_user_picture_entity_display
-    - d6_user_picture_entity_form_display
-dependencies:
-  config:
-    - migrate.migration.d6_user_role
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml
deleted file mode 100644
index 7da9e52..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_user_contact_settings
-label: Drupal 6 user contact settings
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user
-  constants:
-    key: contact
-    module: contact
-process:
-  uid: uid
-  key: 'constants/key'
-  module: 'constants/module'
-  settings:
-    plugin: skip_row_if_not_set
-    index: contact
-    source: data
-
-destination:
-  plugin: user_data
-migration_dependencies:
-  required:
-    - d6_user
-dependencies:
-  config:
-    - migrate.migration.d6_user
-  module:
-    - contact
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml
deleted file mode 100644
index 15ea0d4..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-id: d6_user_mail
-label: Drupal 6 user mail configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - user_mail_status_activated_subject
-    - user_mail_status_activated_body
-    - user_mail_password_reset_subject
-    - user_mail_password_reset_body
-    - user_mail_status_deleted_subject
-    - user_mail_status_deleted_body
-    - user_mail_register_admin_created_subject
-    - user_mail_register_admin_created_body
-    - user_mail_register_no_approval_required_subject
-    - user_mail_register_no_approval_required_body
-    - user_mail_user_mail_register_pending_approval_subject
-    - user_mail_user_mail_register_pending_approval_body
-    - user_mail_status_blocked_subject
-    - user_mail_status_blocked_body
-process:
-  'status_activated/subject': user_mail_status_activated_subject
-  'status_activated/body': user_mail_status_activated_body
-  'password_reset/subject': user_mail_password_reset_subject
-  'password_reset/body': user_mail_password_reset_body
-  'cancel_confirm/subject': user_mail_status_deleted_subject
-  'cancel_confirm/body': user_mail_status_deleted_body
-  'register_admin_created/subject': user_mail_register_admin_created_subject
-  'register_admin_created/body': user_mail_register_admin_created_body
-  'register_no_approval_required/subject': user_mail_register_no_approval_required_subject
-  'register_no_approval_required/body': user_mail_register_no_approval_required_body
-  'register_pending_approval/subject': user_mail_user_mail_register_pending_approval_subject
-  'register_pending_approval/body': user_mail_user_mail_register_pending_approval_body
-  'status_blocked/subject': user_mail_status_blocked_subject
-  'status_blocked/body': user_mail_status_blocked_body
-destination:
-  plugin: config
-  config_name: user.mail
-dependencies:
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml
deleted file mode 100644
index dd6be79..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-id: d6_user_picture_entity_display
-label: Drupal 6 user picture display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user_picture_instance
-  constants:
-    entity_type: user
-    bundle: user
-    view_mode: default
-    name: user_picture
-    type: image
-    options:
-      label: hidden
-      settings:
-        image_style: ''
-        image_link: content
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  view_mode: 'constants/view_mode'
-  field_name: 'constants/name'
-  type: 'constants/type'
-  options: 'constants/options'
-  'options/type': @type
-destination:
-  plugin: component_entity_display
-migration_dependencies:
-  required:
-    - d6_user_picture_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_user_picture_field_instance
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml
deleted file mode 100644
index 9d2182b..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-id: d6_user_picture_entity_form_display
-label: Drupal 6 user picture form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user_picture_instance
-  constants:
-    entity_type: user
-    bundle: user
-    form_mode: default
-    name: user_picture
-    type: image_image
-    options:
-      settings:
-        progress_indicator: throbber
-        preview_image_style: thumbnail
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  field_name: 'constants/name'
-  form_mode: 'constants/form_mode'
-  type: 'constants/type'
-  options: 'constants/options'
-  'options/type': @type
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_user_picture_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_user_picture_field_instance
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml
deleted file mode 100644
index eefb62d..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-id: d6_user_picture_field
-label: Drupal 6 user picture field configuration
-migration_tags:
-  - Drupal 6
-source:
-  # We do an empty source and a proper destination to have an idmap for
-  # dependencies.
-  plugin: md_empty
-  constants:
-    entity_type: user
-    type: image
-    name: user_picture
-    cardinality: 1
-process:
-  entity_type: 'constants/entity_type'
-  field_name: 'constants/name'
-  type: 'constants/type'
-  cardinality: 'constants/cardinality'
-destination:
-  plugin: md_entity:field_storage_config
-dependencies:
-  module:
-    - field
-    - image
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml
deleted file mode 100644
index 14dfc0e..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-id: d6_user_picture_field_instance
-label: Drupal 6 user picture field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user_picture_instance
-  constants:
-    entity_type: user
-    bundle: user
-    name: user_picture
-    settings:
-      file_extensions: 'png gif jpg jpeg'
-      alt_field: false
-      title_field: false
-      min_resolution: ''
-      alt_field_required: false
-      title_field_required: false
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  field_name: 'constants/name'
-  settings: 'constants/settings'
-  'settings/file_directory': file_directory
-  'settings/max_filesize': max_filesize
-  'settings/max_resolution': max_resolution
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_user_picture_field
-dependencies:
-  config:
-    - migrate.migration.d6_user_picture_field
-  module:
-    - field
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml
deleted file mode 100644
index 9be0121..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-id: d6_user_picture_file
-label: Drupal 6 user pictures
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user_picture_file
-  constants:
-    is_public: true
-process:
-  filename: filename
-  uid: uid
-  uri:
-    plugin: file_uri
-    source:
-      - picture
-      - file_directory_path
-      - temp_directory_path
-      - 'constants/is_public'
-destination:
-  plugin: entity:file
-  source_path_property: picture
-migration_dependencies:
-  # Every migration that saves into {file_managed} must have the d6_file
-  # migration as an optional dependency to ensure it runs first.
-  optional:
-    - d6_file
-dependencies:
-  module:
-    - file
-    - migrate_drupal
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml
deleted file mode 100644
index 7da0e7a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-id: d6_user_profile_entity_display
-label: Drupal 6 user profile display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_profile_field
-  constants:
-    entity_type: user
-    bundle: user
-    view_mode: default
-    options:
-      label: hidden
-      settings: {}
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  view_mode: 'constants/view_mode'
-  field_name: name
-  type:
-    plugin: static_map
-    source: type
-    map:
-      checkbox: list_default
-      date: datetime_default
-      list: text_default
-      selection: list_default
-      textfield: text_default
-      textarea: text_default
-      url: link_default
-  options: 'constants/options'
-  'options/type': @type
-  hidden:
-    plugin: static_map
-    source: visibility
-    default_value: false
-    map:
-      1: true # PROFILE_PRIVATE
-      4: true # PROFILE_HIDDEN
-destination:
-  plugin: component_entity_display
-dependencies:
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml
deleted file mode 100644
index 18fab1b..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-id: d6_user_profile_entity_form_display
-label: Drupal 6 user profile form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_profile_field
-  constants:
-    empty: {}
-    entity_type: user
-    bundle: user
-    form_mode: default
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  field_name: name
-  form_mode: 'constants/form_mode'
-  type:
-    plugin: static_map
-    source: type
-    map:
-      checkbox: boolean_checkbox
-      date: datetime_default
-      list: text_textfield
-      selection: options_select
-      textfield: text_textfield
-      textarea: text_textarea
-      url: link_default
-  options: 'constants/options'
-  'options/type': @type
-  'options/settings':
-    plugin: field_instance_widget_settings
-    source:
-      - @type
-      - 'constants/empty' # we don't have any settings.
-  'options/settings/display_label':  # Single on/off checkboxes need to have display_label = true otherwise their label doesn't show.
-    plugin: static_map
-    default_value: false
-    source: type
-    map:
-      checkbox: true
-  hidden:
-    plugin: static_map
-    source: visibility
-    default_value: false
-    map:
-      1: true # PROFILE_PRIVATE
-      4: true # PROFILE_HIDDEN
-destination:
-  plugin: component_entity_form_display
-dependencies:
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml
deleted file mode 100644
index 1f84573..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-id: d6_user_profile_field
-label: Drupal 6 user profile field configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_profile_field
-  constants:
-    entity_type: user
-process:
-  entity_type: 'constants/entity_type'
-  field_name: name
-  type:
-    plugin: static_map
-    source: type
-    map:
-      checkbox: boolean
-      date: datetime
-      list: text
-      selection: list_string
-      textfield: text
-      textarea: text_long
-      url: link
-  settings:
-    plugin: d6_profile_field_settings
-    source: type
-  'settings/allowed_values': options
-  cardinality:
-    plugin: static_map
-    default_value: 1
-    source: type
-    map:
-      list: -1
-destination:
-  plugin: md_entity:field_storage_config
-dependencies:
-  module:
-    - field
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml
deleted file mode 100644
index 30c5938..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-id: d6_user_profile_field_instance
-label: Drupal 6 user profile field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_profile_field
-  constants:
-    entity_type: user
-    bundle: user
-process:
-  entity_type: 'constants/entity_type'
-  bundle: 'constants/bundle'
-  label: title
-  description: explanation
-  field_name: name
-  required: required
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_user_profile_field
-dependencies:
-  config:
-    - migrate.migration.d6_user_profile_field
-  module:
-    - field
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml
deleted file mode 100644
index 46edcc8..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-id: d6_user_role
-label: Drupal 6 user roles
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_user_role
-process:
-  id:
-    -
-      plugin: machine_name
-      source: name
-    -
-      plugin: dedupe_entity
-      entity_type: user_role
-      field: id
-      length: 32
-    -
-      plugin: user_update_8002
-  label: name
-  permissions:
-    -
-      plugin: static_map
-      source: permissions
-      bypass: true
-      map:
-        'use PHP for block visibility': 'use PHP for settings'
-        'administer site-wide contact form': 'administer contact forms'
-        'post comments without approval': 'skip comment approval'
-        'edit own blog entries' : 'edit own blog content'
-        'edit any blog entry' : 'edit any blog content'
-        'delete own blog entries' : 'delete own blog content'
-        'delete any blog entry' : 'delete any blog content'
-        'create forum topics' : 'create forum content'
-        'delete any forum topic' : 'delete any forum content'
-        'delete own forum topics' : 'delete own forum content'
-        'edit any forum topic' : 'edit any forum content'
-        'edit own forum topics' : 'edit own forum content'
-    - plugin: system_update_7000
-    - plugin: node_update_7008
-    - plugin: flatten
-    - plugin: filter_format_permission
-destination:
-  plugin: entity:user_role
-migration_dependencies:
-  required:
-    - d6_filter_format
-dependencies:
-  config:
-    - migrate.migration.d6_filter_format
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml
deleted file mode 100644
index 09e2eb7..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_user_settings
-label: Drupal 6 user configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: variable
-  variables:
-    - user_mail_status_blocked_notify
-    - user_mail_status_activated_notify
-    - user_email_verification
-    - user_register
-    - anonymous
-process:
-  'notify/status_blocked': user_mail_status_blocked_notify
-  'notify/status_activated': user_mail_status_activated_notify
-  verify_mail: user_email_verification
-  register:
-    plugin: static_map
-    source: user_register
-    default_value: visitors_admin_approval
-    map:
-      2: visitors_admin_approval
-      1: user_register
-      0: admin_only
-  anonymous: anonymous
-destination:
-  plugin: config
-  config_name: user.settings
-dependencies:
-  module:
-    - migrate_drupal
-    - user
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml
deleted file mode 100644
index f8bf6fd..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-id: d6_view_modes
-label: Drupal 6 view modes
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_view_mode
-  constants:
-    targetEntityType: node
-    status: true
-
-process:
-  mode:
-    plugin: static_map
-    source: view_mode
-    map:
-      0: normal
-      1: preview
-      2: search_index
-      3: search_result
-      4: rss
-      5: print
-      teaser: teaser
-      full: full
-  label:
-    plugin: static_map
-    source: view_mode
-    map:
-      0: "Normal"
-      1: "Preview"
-      2: "Search index"
-      3: "Search result"
-      4: "RSS"
-      5: "Print"
-      teaser: "Teaser"
-      full: "Full"
-  targetEntityType: 'constants/targetEntityType'
-  status: 'constants/status'
-
-destination:
-  plugin: entity:entity_view_mode
-dependencies:
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml
deleted file mode 100644
index 5c0c9c2..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-id: d6_vocabulary_entity_display
-label: Drupal 6 vocabulary display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_vocabulary_per_type
-  constants:
-    entity_type: node
-    view_mode: default
-    options:
-      label: hidden
-      type: entity_reference_label
-      weight: 20
-
-process:
-  entity_type: 'constants/entity_type'
-  view_mode: 'constants/view_mode'
-  options: 'constants/options'
-  bundle: type
-  field_name:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: vid
-destination:
-  plugin: component_entity_display
-migration_dependencies:
-  required:
-    - d6_vocabulary_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_vocabulary_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml
deleted file mode 100644
index 91b540a..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_vocabulary_entity_form_display
-label: Drupal 6 vocabulary form display configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_vocabulary_per_type
-  constants:
-    entity_type: node
-    form_mode: default
-    options:
-      type: options_select
-      weight: 20
-process:
-  entity_type: 'constants/entity_type'
-  form_mode: 'constants/form_mode'
-  options: 'constants/options'
-  bundle: type
-  field_name:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: vid
-destination:
-  plugin: component_entity_form_display
-migration_dependencies:
-  required:
-    - d6_vocabulary_field_instance
-dependencies:
-  config:
-    - migrate.migration.d6_vocabulary_field_instance
-  module:
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml
deleted file mode 100644
index e11864f..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-id: d6_vocabulary_field
-label: Drupal 6 vocabulary field configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_vocabulary
-  constants:
-    entity_type: node
-    type: entity_reference
-    target_entity_type: taxonomy_term
-    cardinality: -1
-process:
-  entity_type: 'constants/entity_type'
-  type: 'constants/type'
-  field_name:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: vid
-  'settings/target_type': 'constants/target_entity_type'
-  cardinality: 'constants/cardinality'
-destination:
-  plugin: md_entity:field_storage_config
-migration_dependencies:
-  required:
-    - d6_taxonomy_vocabulary
-dependencies:
-  config:
-    - migrate.migration.d6_taxonomy_vocabulary
-  module:
-    - entity_reference
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml
deleted file mode 100644
index 166155f..0000000
--- a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-id: d6_vocabulary_field_instance
-label: Drupal 6 vocabulary field instance configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_taxonomy_vocabulary_per_type
-  constants:
-    entity_type: node
-    auto_create: true
-    selection_handler: 'default:taxonomy_term'
-process:
-  entity_type: 'constants/entity_type'
-  bundle: type
-  field_name:
-    plugin: migration
-    migration: d6_taxonomy_vocabulary
-    source: vid
-  'settings/handler': 'constants/selection_handler'
-  'settings/handler_settings/target_bundles/0': @field_name
-  'settings/handler_settings/auto_create': 'constants/auto_create'
-destination:
-  plugin: entity:field_config
-migration_dependencies:
-  required:
-    - d6_vocabulary_field
-dependencies:
-  config:
-    - migrate.migration.d6_vocabulary_field
-  module:
-    - field
-    - migrate_drupal
-    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_action_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_action_settings.yml
new file mode 100644
index 0000000..1a518fb
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_action_settings.yml
@@ -0,0 +1,17 @@
+id: d6_action_settings
+label: Drupal 6 action configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - actions_max_stack
+process:
+  recursion_limit: actions_max_stack
+destination:
+  plugin: config
+  config_name: action.settings
+dependencies:
+  module:
+    - action
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_feed.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_feed.yml
new file mode 100644
index 0000000..2daaa8a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_feed.yml
@@ -0,0 +1,25 @@
+id: d6_aggregator_feed
+label: Drupal 6 aggregator feeds
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_aggregator_feed
+
+process:
+  fid: fid
+  title: title
+  url: url
+  refresh: refresh
+  checked: checked
+  link: link
+  description: description
+  image: image
+  etag: etag
+  modified: modified
+
+destination:
+  plugin: entity:aggregator_feed
+dependencies:
+  module:
+    - aggregator
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_item.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_item.yml
new file mode 100644
index 0000000..aa80302
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_item.yml
@@ -0,0 +1,30 @@
+id: d6_aggregator_item
+label: Drupal 6 aggregator items
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_aggregator_item
+process:
+  iid: iid
+  fid:
+    plugin: migration
+    migration: d6_aggregator_feed
+    source:
+      - fid
+  title: title
+  link: link
+  author: author
+  description: description
+  timestamp: timestamp
+  guid: guid
+destination:
+  plugin: entity:aggregator_item
+migration_dependencies:
+  required:
+    - d6_aggregator_feed
+dependencies:
+  config:
+    - migrate.migration.d6_aggregator_feed
+  module:
+    - aggregator
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_settings.yml
new file mode 100644
index 0000000..9720f6e
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_settings.yml
@@ -0,0 +1,29 @@
+id: d6_aggregator_settings
+label: Drupal 6 aggregator configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - aggregator_fetcher
+    - aggregator_parser
+    - aggregator_processors
+    - aggregator_allowed_html_tags
+    - aggregator_teaser_length
+    - aggregator_clear
+    - aggregator_summary_items
+process:
+  fetcher: aggregator_fetcher
+  parser: aggregator_parser
+  processors: aggregator_processors
+  'items/allowed_html': aggregator_allowed_html_tags
+  'items/teaser_length': aggregator_teaser_length
+  'items/expire': aggregator_clear
+  'source/list_max': aggregator_summary_items
+destination:
+  plugin: config
+  config_name: aggregator.settings
+dependencies:
+  module:
+    - aggregator
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block.yml
new file mode 100644
index 0000000..1d83119
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block.yml
@@ -0,0 +1,102 @@
+id: d6_block
+label: Drupal 6 blocks
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_block
+process:
+  # Drupal 8 does not have a status but it doesn't matter; this is here to
+  # skip disabled blocks.
+  status:
+    plugin: skip_on_empty
+    method: row
+    source: status
+  id:
+    # We need something unique, so aggregator, aggregator_1 etc will do.
+    plugin: dedupe_entity
+    entity_type: block
+    field: id
+    postfix: _
+    length: 32
+    source: module
+  plugin:
+    -
+      plugin: static_map
+      bypass: true
+      source:
+        - module
+        - delta
+      map:
+        book:
+          0: book_navigation
+        comment:
+          0: views_block:comments_recent-block_1
+        forum:
+          0: forum_active_block
+          1: forum_new_block
+        locale:
+          0: language_block
+        node:
+          0: node_syndicate_block
+        search:
+          0: search_form_block
+        statistics:
+          0: statistics_popular_block
+        system:
+          0: system_powered_by_block
+        user:
+          0: user_login_block
+          1: system_menu_block:tools
+          2: views_block:who_s_new-block_1
+          3: views_block:who_s_online-who_s_online_block
+    -
+      plugin: d6_block_plugin_id
+  theme:
+    plugin: d6_block_theme
+    source:
+      - theme
+      - default_theme
+      - admin_theme
+  region:
+    plugin: d6_block_region
+    source:
+      - region
+      - theme
+      - @theme
+    region_map:
+      left: sidebar_first
+      right: sidebar_second
+      sidebar_first: sidebar_first
+      sidebar_second: sidebar_second
+      help: help
+      header: header
+      footer: footer
+  label: title
+  weight: weight
+  settings:
+    plugin: d6_block_settings
+    source:
+      - @plugin
+      - delta
+      - settings
+  visibility:
+    plugin: d6_block_visibility
+    source:
+      - pages
+      - roles
+      - visibility
+destination:
+  plugin: entity:block
+migration_dependencies:
+  required:
+    - d6_menu
+    - d6_custom_block
+    - d6_user_role
+dependencies:
+  config:
+    - migrate.migration.d6_custom_block
+    - migrate.migration.d6_menu
+    - migrate.migration.d6_user_role
+  module:
+    - block
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_body_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_body_field.yml
new file mode 100644
index 0000000..08935ee
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_body_field.yml
@@ -0,0 +1,32 @@
+id: d6_block_content_body_field
+label: Drupal 6 block content body field configuration
+migration_tags:
+  - Drupal 6
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # migration_dependencies.
+  plugin: md_empty
+  constants:
+    entity_type: block_content
+    bundle: basic
+    name: body
+    label: Body
+    display_summary: false
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  field_name: 'constants/name'
+  label: 'constants/label'
+  'settings/display_summary': 'constants/display_summary'
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_block_content_type
+dependencies:
+  config:
+    - migrate.migration.d6_block_content_type
+  module:
+    - block_content
+    - field
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_type.yml
new file mode 100644
index 0000000..f055a61
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_type.yml
@@ -0,0 +1,20 @@
+id: d6_block_content_type
+label: Drupal 6 block content type
+migration_tags:
+  - Drupal 6
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # migration_dependencies.
+  plugin: md_empty
+  constants:
+    id: basic
+    label: Basic
+process:
+  id: 'constants/id'
+  label: 'constants/label'
+destination:
+  plugin: entity:block_content_type
+dependencies:
+  module:
+    - block_content
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book.yml
new file mode 100644
index 0000000..c8007e0
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book.yml
@@ -0,0 +1,30 @@
+id: d6_book
+label: Drupal 6 books
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_book
+process:
+  nid: nid
+  'book/bid': bid
+  'book/weight': weight
+  'book/pid':
+    -
+      plugin: skip_on_empty
+      method: process
+      source: plid
+    -
+      plugin: migration
+      migration: d6_book
+destination:
+  plugin: book
+migration_dependencies:
+  required:
+    - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+  module:
+    - book
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book_settings.yml
new file mode 100644
index 0000000..35302d0
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book_settings.yml
@@ -0,0 +1,21 @@
+id: d6_book_settings
+label: Drupal 6 book configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - book_child_type
+    - book_block_mode
+    - book_allowed_types
+process:
+  child_type: book_child_type
+  'block/navigation/mode': book_block_mode
+  allowed_types: book_allowed_types
+destination:
+  plugin: config
+  config_name: book.settings
+dependencies:
+  module:
+    - book
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_revision.yml
new file mode 100644
index 0000000..b3203f9
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_revision.yml
@@ -0,0 +1,24 @@
+id: d6_cck_field_revision
+label: Drupal 6 field revisions
+migration_tags:
+  - Drupal 6
+load:
+  plugin: drupal_entity
+  bundle_migration: d6_node_type
+source:
+  plugin: d6_cck_field_revision
+process:
+  vid: vid
+destination:
+  plugin: entity_revision:node
+migration_dependencies:
+  required:
+    - d6_cck_field_values
+    - d6_node_revision
+dependencies:
+  config:
+    - migrate.migration.d6_cck_field_values
+    - migrate.migration.d6_node_revision
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_values.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_values.yml
new file mode 100644
index 0000000..0457ecf
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_values.yml
@@ -0,0 +1,29 @@
+id: d6_cck_field_values
+label: Drupal 6 field values
+migration_tags:
+  - Drupal 6
+load:
+  plugin: drupal_entity
+  bundle_migration: d6_node_type
+source:
+  plugin: d6_cck_field_values
+process:
+  nid:
+    plugin: migration
+    migration: d6_node
+    source: nid
+destination:
+  plugin: entity:node
+migration_dependencies:
+  required:
+    - d6_node
+    - d6_field_formatter_settings
+    - d6_field_instance_widget_settings
+dependencies:
+  config:
+    - migrate.migration.d6_field_formatter_settings
+    - migrate.migration.d6_field_instance_widget_settings
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment.yml
new file mode 100644
index 0000000..94fb020
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment.yml
@@ -0,0 +1,57 @@
+id: d6_comment
+label: Drupal 6 comments
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment
+  constants:
+    entity_type: node
+process:
+  cid: cid
+  pid:
+    plugin: migration
+    migration: d6_comment
+    source: pid
+  entity_id: nid
+  entity_type: 'constants/entity_type'
+  # field_name & comment_type is calculated in
+  # \Drupal\migrate_drupal\Plugin\migrate\source\d6\Comment::prepareRow()
+  field_name: field_name
+  comment_type: comment_type
+  subject: subject
+  uid: uid
+  name: name
+  mail: mail
+  homepage: homepage
+  hostname: hostname
+  created: timestamp
+  changed: timestamp
+  status: status #In D6, published=0. We reverse the value in prepareRow.
+  thread: thread
+  'comment_body/value': comment
+  'comment_body/format':
+    plugin: migration
+    migration: d6_filter_format
+    source: format
+destination:
+  plugin: entity:comment
+migration_dependencies:
+  required:
+    - d6_node
+    - d6_comment_type
+    - d6_user
+    - d6_comment_entity_display
+    - d6_comment_entity_form_display
+    - d6_filter_format
+dependencies:
+  config:
+    - migrate.migration.d6_comment_entity_display
+    - migrate.migration.d6_comment_entity_form_display
+    - migrate.migration.d6_comment_type
+    - migrate.migration.d6_filter_format
+    - migrate.migration.d6_node
+    - migrate.migration.d6_user
+  module:
+    - comment
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_display.yml
new file mode 100644
index 0000000..99e373b
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_display.yml
@@ -0,0 +1,32 @@
+id: d6_comment_entity_display
+label: Drupal 6 comment display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable
+  constants:
+    entity_type: node
+    field_name: comment
+    view_mode: default
+    options:
+      label: hidden
+      type: comment_default
+      weight: 20
+process:
+  entity_type: 'constants/entity_type'
+  field_name: 'constants/field_name'
+  view_mode: 'constants/view_mode'
+  options: 'constants/options'
+
+  bundle: node_type
+destination:
+  plugin: component_entity_display
+migration_dependencies:
+  required:
+    - d6_comment_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display.yml
new file mode 100644
index 0000000..059517f
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display.yml
@@ -0,0 +1,31 @@
+id: d6_comment_entity_form_display
+label: Drupal 6 comment field form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable
+  constants:
+    entity_type: node
+    field_name: comment
+    form_mode: default
+    options:
+      type: comment_default
+      weight: 20
+process:
+  entity_type: 'constants/entity_type'
+  field_name: 'constants/field_name'
+  form_mode: 'constants/form_mode'
+  options: 'constants/options'
+
+  bundle: node_type
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_comment_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display_subject.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display_subject.yml
new file mode 100644
index 0000000..8a36272
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display_subject.yml
@@ -0,0 +1,38 @@
+id: d6_comment_entity_form_display_subject
+label: Drupal 6 comment subject form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable_per_comment_type
+  constants:
+    entity_type: comment
+    field_name: subject
+    form_mode: default
+    options:
+      type: string_textfield
+      weight: 10
+process:
+  entity_type: 'constants/entity_type'
+  field_name: 'constants/field_name'
+  form_mode: 'constants/form_mode'
+  options: 'constants/options'
+
+  hidden:
+    plugin: static_map
+    source: comment_type
+    default_value: false
+    map:
+      comment_no_subject: true # Hide subject field
+      comment: false
+  bundle: comment_type
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_comment_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_type
+  module:
+    - comment
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field.yml
new file mode 100644
index 0000000..ab22f23
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field.yml
@@ -0,0 +1,27 @@
+id: d6_comment_field
+label: Drupal 6 comment field configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable_per_comment_type
+  constants:
+    entity_type: node
+    type: comment
+process:
+  entity_type: 'constants/entity_type'
+  field_name: comment_type
+  type: 'constants/type'
+  'settings/comment_type': comment_type
+destination:
+  plugin: md_entity:field_storage_config
+migration_dependencies:
+  required:
+    - d6_comment_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_type
+  module:
+    - comment
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field_instance.yml
new file mode 100644
index 0000000..669ea94
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field_instance.yml
@@ -0,0 +1,42 @@
+id: d6_comment_field_instance
+label: Drupal 6 comment field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable
+  constants:
+    entity_type: node
+    label: Comments
+    required: true
+process:
+  entity_type: 'constants/entity_type'
+  label: 'constants/label'
+  required: 'constants/required'
+
+  field_name:
+    plugin: static_map
+    source: comment_subject_field
+    default_value: comment
+    map:
+      0: comment_no_subject
+  bundle: node_type
+  'default_value/0/status': comment
+  'settings/default_mode': comment_default_mode
+  'settings/per_page': comment_default_per_page
+  'settings/anonymous': comment_anonymous
+  'settings/form_location': comment_form_location
+  'settings/preview': comment_preview
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_comment_field
+    - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field
+    - migrate.migration.d6_node_type
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_type.yml
new file mode 100644
index 0000000..35dfde0
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_type.yml
@@ -0,0 +1,20 @@
+id: d6_comment_type
+label: Drupal 6 comment type
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_comment_variable_per_comment_type
+  constants:
+    entity_type: node
+process:
+  target_entity_type_id: 'constants/entity_type'
+  id: comment_type
+  label: label
+  description: description
+destination:
+  plugin: entity:comment_type
+dependencies:
+  module:
+    - comment
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_category.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_category.yml
new file mode 100644
index 0000000..cab9f3b
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_category.yml
@@ -0,0 +1,26 @@
+id: d6_contact_category
+label: Drupal 6 contact category configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_contact_category
+process:
+  id:
+    -
+      plugin: machine_name
+      source: category
+    -
+      plugin: dedupe_entity
+      entity_type: user_role
+      field: cid
+      length: 32
+  label: category
+  recipients: recipients
+  reply: reply
+  weight: weight
+destination:
+  plugin: entity:contact_form
+dependencies:
+  module:
+    - contact
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_settings.yml
new file mode 100644
index 0000000..d0e4a3d
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_settings.yml
@@ -0,0 +1,28 @@
+id: d6_contact_settings
+label: Drupal 6 contact configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_contact_settings
+  variables:
+    - contact_default_status
+    - contact_hourly_threshold
+process:
+  user_default_enabled: contact_default_status
+  'flood/limit': contact_hourly_threshold
+  default_form:
+    plugin: migration
+    migration: d6_contact_category
+    source: default_category
+destination:
+  plugin: config
+  config_name: contact.settings
+migration_dependencies:
+  required:
+    - d6_contact_category
+dependencies:
+  config:
+    - migrate.migration.d6_contact_category
+  module:
+    - contact
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_custom_block.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_custom_block.yml
new file mode 100644
index 0000000..be6cebf
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_custom_block.yml
@@ -0,0 +1,31 @@
+id: d6_custom_block
+label: Drupal 6 custom blocks
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_box
+  constants:
+    type: basic
+process:
+  id: bid
+  type: 'constants/type'
+  info: info
+  'body/format':
+    plugin: migration
+    migration: d6_filter_format
+    source: format
+  'body/value': body
+destination:
+  plugin: entity:block_content
+  no_stub: true
+migration_dependencies:
+  required:
+    - d6_filter_format
+    - d6_block_content_body_field
+dependencies:
+  config:
+    - migrate.migration.d6_block_content_body_field
+    - migrate.migration.d6_filter_format
+  module:
+    - block_content
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_date_formats.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_date_formats.yml
new file mode 100644
index 0000000..44448e6
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_date_formats.yml
@@ -0,0 +1,24 @@
+id: d6_date_formats
+label: Drupal 6 date format configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable_multirow
+  variables:
+    - date_format_long
+    - date_format_medium
+    - date_format_short
+process:
+  id:
+    plugin: static_map
+    source: name
+    map:
+      date_format_long: long
+      date_format_short: short
+      date_format_medium: medium
+  pattern: value
+destination:
+  plugin: entity:date_format
+dependencies:
+  module:
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_dblog_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_dblog_settings.yml
new file mode 100644
index 0000000..fb387f5
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_dblog_settings.yml
@@ -0,0 +1,17 @@
+id: d6_dblog_settings
+label: Drupal 6 database logging configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - dblog_row_limit
+process:
+  row_limit: dblog_row_limit
+destination:
+  plugin: config
+  config_name: dblog.settings
+dependencies:
+  module:
+    - dblog
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field.yml
new file mode 100644
index 0000000..191c538
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field.yml
@@ -0,0 +1,138 @@
+id: d6_field
+label: Drupal 6 field configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_field
+  constants:
+    entity_type: node
+    langcode: en
+process:
+  entity_type: 'constants/entity_type'
+  status: active
+  langcode: 'constants/langcode'
+  field_name: field_name
+  type:
+    -
+      plugin: static_map
+      source:
+        - type
+        - widget_type
+      map:
+        number_integer:
+          number: integer
+          optionwidgets_select: list_integer
+          optionwidgets_buttons: list_integer
+          optionwidgets_onoff: boolean
+        number_decimal:
+          number: decimal
+          optionwidgets_select: list_float
+          optionwidgets_buttons: list_float
+          optionwidgets_onoff: boolean
+        number_float:
+          number: float
+          optionwidgets_select: list_float
+          optionwidgets_buttons: list_float
+          optionwidgets_onoff: boolean
+        text:
+          optionwidgets_select: list_string
+          optionwidgets_buttons: list_string
+          optionwidgets_onoff: boolean
+          text_textfield: text
+          text_textarea: text_long
+        email:
+          email_textfield: email
+        filefield:
+          imagefield_widget: image
+          filefield_widget: file
+        date:
+          date_select: datetime
+        datestamp:
+          date_select: datetime
+        datetime:
+          date_select: datetime
+        fr_phone:
+          phone_textfield: telephone
+        be_phone:
+          phone_textfield: telephone
+        it_phone:
+          phone_textfield: telephone
+        el_phone:
+          phone_textfield: telephone
+        ch_phone:
+          phone_textfield: telephone
+        ca_phone:
+          phone_textfield: telephone
+        cr_phone:
+          phone_textfield: telephone
+        pa_phone:
+          phone_textfield: telephone
+        gb_phone:
+          phone_textfield: telephone
+        ru_phone:
+          phone_textfield: telephone
+        ua_phone:
+          phone_textfield: telephone
+        es_phone:
+          phone_textfield: telephone
+        au_phone:
+          phone_textfield: telephone
+        cs_phone:
+          phone_textfield: telephone
+        hu_phone:
+          phone_textfield: telephone
+        pl_phone:
+          phone_textfield: telephone
+        nl_phone:
+          phone_textfield: telephone
+        se_phone:
+          phone_textfield: telephone
+        za_phone:
+          phone_textfield: telephone
+        il_phone:
+          phone_textfield: telephone
+        nz_phone:
+          phone_textfield: telephone
+        br_phone:
+          phone_textfield: telephone
+        cl_phone:
+          phone_textfield: telephone
+        cn_phone:
+          phone_textfield: telephone
+        hk_phone:
+          phone_textfield: telephone
+        mo_phone:
+          phone_textfield: telephone
+        ph_phone:
+          phone_textfield: telephone
+        sg_phone:
+          phone_textfield: telephone
+        jo_phone:
+          phone_textfield: telephone
+        eg_phone:
+          phone_textfield: telephone
+        pk_phone:
+          phone_textfield: telephone
+        int_phone:
+          phone_textfield: telephone
+  cardinality:
+    plugin: static_map
+    bypass: true
+    source: multiple
+    map:
+      0: 1
+      1: -1
+  settings:
+    plugin: field_settings
+    source:
+      - @type
+      - global_settings
+      - widget_settings
+
+destination:
+  plugin: md_entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_formatter_settings.yml
new file mode 100644
index 0000000..39401f8
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_formatter_settings.yml
@@ -0,0 +1,265 @@
+id: d6_field_formatter_settings
+label: Drupal 6 field formatter configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_field_instance_per_view_mode
+  constants:
+    entity_type: node
+    third_party_settings: { }
+
+process:
+  # We skip field types that don't exist because they weren't migrated by the
+  # field migration.
+  field_type_exists:
+    -
+      plugin: migration
+      migration: d6_field
+      source:
+        - field_name
+    -
+      plugin: extract
+      index:
+        - 1
+    -
+      plugin: skip_on_empty
+      method: row
+  entity_type: 'constants/entity_type'
+  bundle: type_name
+  view_mode:
+    -
+      plugin: migration
+      migration: d6_view_modes
+      source:
+        - view_mode
+    -
+      plugin: extract
+      index:
+        - 1
+    -
+      plugin: static_map
+      bypass: true
+      map:
+        full: default
+  field_name: field_name
+  "options/label": label
+  "options/weight": weight
+  "options/type":
+      -
+        plugin: static_map
+        bypass: true
+        source:
+          - type
+          - 'display_settings/format'
+        map:
+          text:
+            default: text_default
+            trimmed: text_trimmed
+            plain: basic_string
+          number_integer:
+            default: number_integer
+            us_0: number_integer
+            be_0: number_integer
+            fr_0: number_integer
+            unformatted: number_unformatted
+          number_float:
+            default: number_decimal
+            us_0: number_decimal
+            us_1: number_decimal
+            us_2: number_decimal
+            be_0: number_decimal
+            be_1: number_decimal
+            be_2: number_decimal
+            fr_0: number_decimal
+            fr_1: number_decimal
+            fr_2: number_decimal
+            unformatted: number_unformatted
+          number_decimal:
+            default: number_decimal
+            us_0: number_decimal
+            us_1: number_decimal
+            us_2: number_decimal
+            be_0: number_decimal
+            be_1: number_decimal
+            be_2: number_decimal
+            fr_0: number_decimal
+            fr_1: number_decimal
+            fr_2: number_decimal
+            unformatted: number_unformatted
+          email:
+            default: email_mailto
+            spamspan: email_mailto
+            contact: email_mailto
+            plain: basic_string
+          filefield:
+            default: file_default
+            url_plain: file_url_plain
+            path_plain: file_url_plain
+            image_plain: image
+            image_nodelink: image
+            image_imagelink: image
+          fr_phone:
+            default: basic_string
+          be_phone:
+            default: basic_string
+          it_phone:
+            default: basic_string
+          el_phone:
+            default: basic_string
+          ch_phone:
+            default: basic_string
+          ca_phone:
+            default: basic_string
+          cr_phone:
+            default: basic_string
+          pa_phone:
+            default: basic_string
+          gb_phone:
+            default: basic_string
+          ru_phone:
+            default: basic_string
+          ua_phone:
+            default: basic_string
+          es_phone:
+            default: basic_string
+          au_phone:
+            default: basic_string
+          cs_phone:
+            default: basic_string
+          hu_phone:
+            default: basic_string
+          pl_phone:
+            default: basic_string
+          nl_phone:
+            default: basic_string
+          se_phone:
+            default: basic_string
+          za_phone:
+            default: basic_string
+          il_phone:
+            default: basic_string
+          nz_phone:
+            default: basic_string
+          br_phone:
+            default: basic_string
+          cl_phone:
+            default: basic_string
+          cn_phone:
+            default: basic_string
+          hk_phone:
+            default: basic_string
+          mo_phone:
+            default: basic_string
+          ph_phone:
+            default: basic_string
+          sg_phone:
+            default: basic_string
+          jo_phone:
+            default: basic_string
+          eg_phone:
+            default: basic_string
+          pk_phone:
+            default: basic_string
+          int_phone:
+            default: basic_string
+      -
+        plugin: field_type_defaults
+  "options/settings":
+    -
+      plugin: static_map
+      bypass: true
+      source:
+        - module
+        - 'display_settings/format'
+      map:
+        link:
+          default:
+            trim_length: '80'
+            url_only: 0
+            url_plain: 0
+            rel: 0
+            target: 0
+          plain:
+            trim_length: '80'
+            url_only: 1
+            url_plain: 1
+            rel: 0
+            target: 0
+          absolute:
+            trim_length: '80'
+            url_only: 1
+            url_plain: 1
+            rel: 0
+            target: 0
+          title_plain: #can't support title as plain text.
+            trim_length: '80'
+            url_only: 1
+            url_plain: 1
+            rel: 0
+            target: 0
+          url:
+            trim_length: '80'
+            url_only: 1
+            url_plain: 0
+            rel: 0
+            target: 0
+          short: #can't support hardcoded link text?
+            trim_length: '80'
+            url_only: 0
+            url_plain: 0
+            rel: 0
+            target: 0
+          label: # can't support label as link text?
+            trim_length: '80'
+            url_only: 0
+            url_plain: 0
+            rel: 0
+            target: 0
+          separate:
+            trim_length: '80'
+            rel: 0
+            target: 0
+        filefield:
+          image_plain:
+            image_style: ''
+            image_link: ''
+          image_nodelink:
+            image_style: ''
+            image_link: content
+          image_imagelink:
+            image_style: ''
+            image_link: file
+        date:
+          default:
+            format_type: fallback
+          format_interval:
+            format_type: fallback
+          long:
+            format_type: long
+          medium:
+            format_type: medium
+          short:
+            format_type: short
+        text:
+          trimmed:
+            trim_length: 600
+        string:
+          default:
+            link_to_entity: false
+    -
+      plugin: field_formatter_settings_defaults
+  "options/third_party_settings": 'constants/third_party_settings'
+
+destination:
+  plugin: component_entity_display
+migration_dependencies:
+  required:
+    - d6_field_instance
+    - d6_view_modes
+dependencies:
+  config:
+    - migrate.migration.d6_field_instance
+    - migrate.migration.d6_view_modes
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance.yml
new file mode 100644
index 0000000..5710433
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance.yml
@@ -0,0 +1,60 @@
+id: d6_field_instance
+label: Drupal 6 field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_field_instance
+  constants:
+    entity_type: node
+
+process:
+  # We skip field types that don't exist because they weren't migrated by the
+  # field migration.
+  field_type_exists:
+    -
+      plugin: migration
+      migration: d6_field
+      source:
+        - field_name
+    -
+      plugin: extract
+      index:
+        - 1
+    -
+      plugin: skip_on_empty
+      method: row
+  entity_type: 'constants/entity_type'
+  field_name: field_name
+  bundle: type_name
+  label: label
+  description: description
+  required: required
+  status: active
+  settings:
+    plugin: d6_field_field_settings
+    source:
+      - widget_type
+      - widget_settings
+      - global_settings
+
+  default_value_callback: ''
+  default_value:
+    plugin: d6_field_instance_defaults
+    source:
+      - widget_type
+      - widget_settings
+
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_node_type
+    - d6_field
+dependencies:
+  config:
+    - migrate.migration.d6_field
+    - migrate.migration.d6_node_type
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance_widget_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance_widget_settings.yml
new file mode 100644
index 0000000..a343abe
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance_widget_settings.yml
@@ -0,0 +1,68 @@
+id: d6_field_instance_widget_settings
+label: Drupal 6 field instance widget configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_field_instance_per_form_display
+  constants:
+    entity_type: node
+    form_mode: default
+    third_party_settings: { }
+
+process:
+  # We skip field types that don't exist because they weren't migrated by the
+  # field migration.
+  field_type_exists:
+    -
+      plugin: migration
+      migration: d6_field
+      source:
+        - field_name
+    -
+      plugin: extract
+      index:
+        - 1
+    -
+      plugin: skip_on_empty
+      method: row
+  bundle: type_name
+  form_mode: 'constants/form_mode'
+  field_name: field_name
+  entity_type: 'constants/entity_type'
+  'options/weight': weight
+  'options/type':
+    type:
+      plugin: static_map
+      bypass: true
+      source: widget_type
+      map:
+        text_textfield: text_textfield
+        number: number
+        email_textfield: email_default
+        date_select: datetime_default
+        date_text: datetime_default
+        filefield_widget: file_generic
+        imagefield_widget: image_image
+        phone_textfield: telephone_default
+        optionwidgets_onoff: boolean_checkbox
+        optionwidgets_buttons: options_buttons
+        optionwidgets_select: options_select
+  'options/settings':
+    -
+      plugin: field_instance_widget_settings
+      source:
+        - widget_type
+        - widget_settings
+  'options/third_party_settings': 'constants/third_party_settings'
+
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file.yml
new file mode 100644
index 0000000..508d0bb
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file.yml
@@ -0,0 +1,29 @@
+# Every migration that saves into {file_managed} must have the d6_file
+# migration as an optional dependency to ensure d6_file runs first.
+id: d6_file
+label: Drupal 6 files
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_file
+process:
+  fid: fid
+  filename: filename
+  uri:
+    plugin: file_uri
+    source:
+      - filepath
+      - file_directory_path
+      - temp_directory_path
+      - is_public
+  filemime: filemime
+  filesize: filesize
+  status: status
+  changed: timestamp
+  uid: uid
+destination:
+  plugin: entity:file
+dependencies:
+  module:
+    - file
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file_settings.yml
new file mode 100644
index 0000000..f2ca170
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file_settings.yml
@@ -0,0 +1,21 @@
+id: d6_file_settings
+label: Drupal 6 file configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - file_description_type
+    - file_description_length
+    - file_icon_directory
+process:
+  'description/type': file_description_type
+  'description/length': file_description_length
+  'icon/directory': file_icon_directory
+destination:
+  plugin: config
+  config_name: file.settings
+dependencies:
+  module:
+    - file
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_filter_format.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_filter_format.yml
new file mode 100644
index 0000000..9efaf7a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_filter_format.yml
@@ -0,0 +1,49 @@
+id: d6_filter_format
+label: Drupal 6 filter format configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_filter_format
+process:
+  format:
+    -
+      plugin: machine_name
+      source: name
+    -
+      plugin: dedupe_entity
+      entity_type: filter_format
+      field: format
+      length: 32
+  name: name
+  cache: cache
+  filters:
+    plugin: iterator
+    source: filters
+    key: @id
+    process:
+      id:
+        plugin: static_map
+        default_value: filter_null
+        source:
+          - module
+          - delta
+        map:
+          filter:
+            - filter_html
+            - filter_autop
+            - filter_url
+            - filter_htmlcorrector
+            - filter_html_escape
+          php:
+            - php_code
+      settings: settings
+      status:
+        plugin: default_value
+        default_value: true
+destination:
+  plugin: entity:filter_format
+  no_stub: true
+dependencies:
+  module:
+    - filter
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_forum_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_forum_settings.yml
new file mode 100644
index 0000000..72e4814
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_forum_settings.yml
@@ -0,0 +1,35 @@
+id: d6_forum_settings
+label: Drupal 6 forum configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - forum_hot_topic
+    - forum_per_page
+    - forum_order
+    - forum_block_num_0
+    - forum_block_num_1
+    - forum_nav_vocabulary
+process:
+  'block/active/limit': forum_block_num_0
+  'block/new/limit': forum_block_num_1
+  'topics/hot_threshold': forum_hot_topic
+  'topics/page_limit': forum_per_page
+  'topics/order': forum_order
+  vocabulary:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: forum_nav_vocabulary
+destination:
+  plugin: config
+  config_name: forum.settings
+migration_dependencies:
+  required:
+    - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - forum
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_locale_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_locale_settings.yml
new file mode 100644
index 0000000..a38bd92
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_locale_settings.yml
@@ -0,0 +1,19 @@
+id: d6_locale_settings
+label: Drupal 6 locale configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - locale_cache_strings
+    - locale_js_directory
+process:
+  cache_strings: locale_cache_strings
+  'javascript/directory': locale_js_directory
+destination:
+  plugin: config
+  config_name: locale.settings
+dependencies:
+  module:
+    - locale
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu.yml
new file mode 100644
index 0000000..4def0bf
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu.yml
@@ -0,0 +1,16 @@
+id: d6_menu
+label: Drupal 6 menus
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_menu
+process:
+  id: menu_name
+  label: title
+  description: description
+destination:
+  plugin: entity:menu
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_links.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_links.yml
new file mode 100644
index 0000000..c98a3a7
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_links.yml
@@ -0,0 +1,53 @@
+id: d6_menu_links
+label: Drupal 6 menu links
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_menu_link
+  constants:
+    bundle: menu_link_content
+process:
+  id: mlid
+  bundle: 'constants/bundle'
+  title: link_title
+  description:
+    plugin: extract
+    source:
+      - options
+    index:
+      - 0
+      - attributes
+      - title
+  menu_name:
+    plugin: migration
+    migration: d6_menu
+    source: menu_name
+  'link/uri':
+    plugin: internal_uri
+    source:
+      - link_path
+  'link/options': options
+  external: external
+  weight: weight
+  expanded: expanded
+  enabled: enabled
+  parent:
+    -
+      plugin: skip_on_empty
+      method: process
+      source: plid
+    -
+      plugin: migration
+      migration: d6_menu_links
+  changed: updated
+destination:
+  plugin: entity:menu_link_content
+migration_dependencies:
+  required:
+    - d6_menu
+dependencies:
+  config:
+    - migrate.migration.d6_menu
+  module:
+    - menu_link_content
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_settings.yml
new file mode 100644
index 0000000..8ec039d
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_settings.yml
@@ -0,0 +1,21 @@
+id: d6_menu_settings
+label: Drupal 6 menu configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - menu_primary_links_source
+    - menu_secondary_links_source
+    - menu_override_parent_selector
+process:
+  main_links: menu_primary_links_source
+  secondary_links: menu_secondary_links_source
+  override_parent_selector: menu_override_parent_selector
+destination:
+  plugin: config
+  config_name: menu_ui.settings
+dependencies:
+  module:
+    - menu_ui
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node.yml
new file mode 100644
index 0000000..4092a25
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node.yml
@@ -0,0 +1,64 @@
+id: d6_node
+label: Drupal 6 nodes
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node
+process:
+  nid: nid
+  vid: vid
+  type: type
+  langcode:
+    plugin: default_value
+    source: language
+    default_value: "und"
+  title: title
+  uid: node_uid
+# Core migrations are designed for replacing the upgrade path and therefore
+# all node and user ids are preserved. For that reason we do not need to look-up
+# the user id for the node. If you're writing a custom migration, user ids will
+# vary from the source site and a lookup as shown below will be required.
+#    plugin: migration
+#    migration: d6_user
+#    source: node_uid
+  status: status
+  created: created
+  changed: changed
+  promote: promote
+  sticky: sticky
+  'body/format':
+    plugin: migration
+    migration: d6_filter_format
+    source: format
+  'body/value': body
+  'body/summary': teaser
+  revision_uid: revision_uid
+  revision_log: log
+  revision_timestamp: timestamp
+
+#  unmapped d6 fields.
+#  tnid
+#  translate
+#  moderate
+#  comment
+
+destination:
+  plugin: entity:node
+migration_dependencies:
+  required:
+    - d6_user
+    - d6_node_type
+    - d6_node_settings
+    - d6_filter_format
+  optional:
+    - d6_field_instance_widget_settings
+    - d6_field_formatter_settings
+dependencies:
+  config:
+    - migrate.migration.d6_filter_format
+    - migrate.migration.d6_node_settings
+    - migrate.migration.d6_node_type
+    - migrate.migration.d6_user
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_revision.yml
new file mode 100644
index 0000000..42118b3
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_revision.yml
@@ -0,0 +1,48 @@
+id: d6_node_revision
+label: Drupal 6 node revisions
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node_revision
+process:
+  nid: nid
+  vid: vid
+  type: type
+  langcode:
+    plugin: default_value
+    source: language
+    default_value: "und"
+  title: title
+  uid: node_uid
+  status: status
+  created: created
+  changed: changed
+  promote: promote
+  sticky: sticky
+  'body/format':
+    plugin: migration
+    migration: d6_filter_format
+    source: format
+  'body/value': body
+  'body/summary': teaser
+  revision_uid: revision_uid
+  revision_log: log
+  revision_timestamp: timestamp
+
+#  unmapped d6 fields.
+#  tnid
+#  translate
+#  moderate
+#  comment
+
+destination:
+  plugin: entity_revision:node
+migration_dependencies:
+  required:
+    - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_promote.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_promote.yml
new file mode 100644
index 0000000..c7f6d24
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_promote.yml
@@ -0,0 +1,25 @@
+id: d6_node_setting_promote
+label: Drupal 6 node type 'promote' setting
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node_type
+  constants:
+    entity_type: node
+    field_name: promote
+process:
+  entity_type: 'constants/entity_type'
+  bundle: type
+  field_name: 'constants/field_name'
+  'default_value/0/value': 'options/promote'
+destination:
+  plugin: entity:base_field_override
+migration_dependencies:
+  required:
+    - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_status.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_status.yml
new file mode 100644
index 0000000..ec7afd6
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_status.yml
@@ -0,0 +1,25 @@
+id: d6_node_setting_status
+label: Drupal 6 node type 'status' setting
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node_type
+  constants:
+    entity_type: node
+    field_name: status
+process:
+  entity_type: 'constants/entity_type'
+  bundle: type
+  field_name: 'constants/field_name'
+  'default_value/0/value': 'options/status'
+destination:
+  plugin: entity:base_field_override
+migration_dependencies:
+  required:
+    - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_sticky.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_sticky.yml
new file mode 100644
index 0000000..4f1b613
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_sticky.yml
@@ -0,0 +1,25 @@
+id: d6_node_setting_sticky
+label: Drupal 6 node type 'sticky' setting
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node_type
+  constants:
+    entity_type: node
+    field_name: sticky
+process:
+  entity_type: 'constants/entity_type'
+  bundle: type
+  field_name: 'constants/field_name'
+  'default_value/0/value': 'options/sticky'
+destination:
+  plugin: entity:base_field_override
+migration_dependencies:
+  required:
+    - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_settings.yml
new file mode 100644
index 0000000..336383a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_settings.yml
@@ -0,0 +1,17 @@
+id: d6_node_settings
+label: Drupal 6 node configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - node_admin_theme
+process:
+  use_admin_theme: node_admin_theme
+destination:
+  plugin: config
+  config_name: node.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_type.yml
new file mode 100644
index 0000000..7bd24ac
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_type.yml
@@ -0,0 +1,28 @@
+id: d6_node_type
+label: Drupal 6 node type configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_node_type
+  constants:
+    preview: 1 # DRUPAL_OPTIONAL
+    create_body: false
+process:
+  type: type
+  name: name
+  module: module
+  description: description
+  help: help
+  title_label: title_label
+  'preview_mode': 'constants/preview'
+  'display_submitted': display_submitted
+  'new_revision': 'options/revision'
+  'settings/node/options': options
+  create_body: has_body
+  create_body_label: body_label
+destination:
+  plugin: entity:node_type
+dependencies:
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_profile_values.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_profile_values.yml
new file mode 100644
index 0000000..047de4d
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_profile_values.yml
@@ -0,0 +1,27 @@
+id: d6_profile_values
+label: Drupal 6 profile values
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_profile_field_values
+load:
+  plugin: drupal_entity
+process:
+  uid: uid
+destination:
+  plugin: entity:user
+migration_dependencies:
+  required:
+    - d6_user
+    - d6_user_profile_field_instance
+    - d6_user_profile_entity_display
+    - d6_user_profile_entity_form_display
+dependencies:
+  config:
+    - migrate.migration.d6_user
+    - migrate.migration.d6_user_profile_entity_display
+    - migrate.migration.d6_user_profile_entity_form_display
+    - migrate.migration.d6_user_profile_field_instance
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_page.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_page.yml
new file mode 100644
index 0000000..6c05d1f
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_page.yml
@@ -0,0 +1,29 @@
+id: d6_search_page
+label: Drupal 6 search page configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - node_rank_comments
+    - node_rank_promote
+    - node_rank_recent
+    - node_rank_relevance
+    - node_rank_sticky
+    - node_rank_views
+  constants:
+    id: node_search
+    path: node
+    plugin: node_search
+process:
+  id: 'constants/id'
+  path: 'constants/path'
+  plugin: 'constants/plugin'
+  'configuration/rankings':
+    plugin: d6_search_configuration_rankings
+destination:
+  plugin: entity:search_page
+dependencies:
+  module:
+    - migrate_drupal
+    - search
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_settings.yml
new file mode 100644
index 0000000..8e832e4
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_settings.yml
@@ -0,0 +1,26 @@
+id: d6_search_settings
+label: Drupal 6 search configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  constants:
+    status: true
+  variables:
+    - minimum_word_size
+    - overlap_cjk
+    - search_cron_limit
+    - search_tag_weights
+    - search_and_or_limit
+process:
+  'index/minimum_word_size': minimum_word_size
+  'index/overlap_cjk': overlap_cjk
+  'index/cron_limit': search_cron_limit
+  logging: 'constants/status'
+destination:
+  plugin: config
+  config_name: search.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - search
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_simpletest_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_simpletest_settings.yml
new file mode 100644
index 0000000..0791f11
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_simpletest_settings.yml
@@ -0,0 +1,25 @@
+id: d6_simpletest_settings
+label: Drupal 6 simpletest configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - simpletest_clear_results
+    - simpletest_httpauth_method
+    - simpletest_httpauth_password
+    - simpletest_httpauth_username
+    - simpletest_verbose
+process:
+  clear_results: simpletest_clear_results
+  'httpauth/method': simpletest_httpauth_method
+  'httpauth/password': simpletest_httpauth_password
+  'httpauth/username': simpletest_httpauth_username
+  verbose: simpletest_verbose
+destination:
+  plugin: config
+  config_name: simpletest.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - simpletest
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_statistics_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_statistics_settings.yml
new file mode 100644
index 0000000..b223e36
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_statistics_settings.yml
@@ -0,0 +1,21 @@
+id: d6_statistics_settings
+label: Drupal 6 statistics configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - statistics_enable_access_log
+    - statistics_flush_accesslog_timer
+    - statistics_count_content_views
+process:
+  'access_log/enabled': statistics_enable_access_log
+  'access_log/max_lifetime': statistics_flush_accesslog_timer
+  'count_content_views': statistics_count_content_views
+destination:
+  plugin: config
+  config_name: statistics.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - statistics
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_syslog_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_syslog_settings.yml
new file mode 100644
index 0000000..e962856
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_syslog_settings.yml
@@ -0,0 +1,19 @@
+id: d6_syslog_settings
+label: Drupal 6 system log configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - syslog_identity
+    - syslog_facility
+process:
+  identity: syslog_identity
+  facility: syslog_facility
+destination:
+  plugin: config
+  config_name: syslog.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - syslog
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_cron.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_cron.yml
new file mode 100644
index 0000000..47be135
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_cron.yml
@@ -0,0 +1,20 @@
+id: d6_system_cron
+label: Drupal 6 cron settings
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - cron_threshold_warning
+    - cron_threshold_error
+    - cron_last
+process:
+  'threshold/requirements_warning': cron_threshold_warning
+  'threshold/requirements_error': cron_threshold_error
+destination:
+  plugin: config
+  config_name: system.cron
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_file.yml
new file mode 100644
index 0000000..925b5a9
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_file.yml
@@ -0,0 +1,24 @@
+id: d6_system_file
+label: Drupal 6 file system configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - file_directory_temp
+    - allow_insecure_uploads
+process:
+  'path/temporary': file_directory_temp
+  allow_insecure_uploads:
+    plugin: static_map
+    source: allow_insecure_uploads
+    map:
+      0: FALSE
+      1: TRUE
+destination:
+  plugin: config
+  config_name: system.file
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_filter.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_filter.yml
new file mode 100644
index 0000000..8e36db7
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_filter.yml
@@ -0,0 +1,17 @@
+id: d6_system_filter
+label: Drupal 6 filter configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - filter_allowed_protocols
+process:
+  protocols: filter_allowed_protocols
+destination:
+  plugin: config
+  config_name: system.filter
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image.yml
new file mode 100644
index 0000000..9581291
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image.yml
@@ -0,0 +1,17 @@
+id: d6_system_image
+label: Drupal 6 image toolkit configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - image_toolkit
+process:
+  toolkit: image_toolkit
+destination:
+  plugin: config
+  config_name: system.image
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image_gd.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image_gd.yml
new file mode 100644
index 0000000..583ca5b
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image_gd.yml
@@ -0,0 +1,17 @@
+id: d6_system_image_gd
+label: Drupal 6 image quality configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - image_jpeg_quality
+process:
+  jpeg_quality: image_jpeg_quality
+destination:
+  plugin: config
+  config_name: system.image.gd
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_logging.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_logging.yml
new file mode 100644
index 0000000..b75bc7e
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_logging.yml
@@ -0,0 +1,25 @@
+id: d6_system_logging
+label: Drupal 6 system logging
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - error_level
+process:
+  error_level:
+    plugin: static_map
+    source: error_level
+    default_value: all
+    map:
+      0: hide
+      1: some
+      2: all
+      3: verbose
+destination:
+  plugin: config
+  config_name: system.logging
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_maintenance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_maintenance.yml
new file mode 100644
index 0000000..0d93cd1
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_maintenance.yml
@@ -0,0 +1,17 @@
+id: d6_system_maintenance
+label: Drupal 6 maintenance page configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - site_offline_message
+process:
+  message: site_offline_message
+destination:
+  plugin: config
+  config_name: system.maintenance
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_performance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_performance.yml
new file mode 100644
index 0000000..a10edfd
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_performance.yml
@@ -0,0 +1,24 @@
+id: d6_system_performance
+label: Drupal 6 performance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - preprocess_css
+    - preprocess_js
+    - cache_lifetime
+    - cache
+    - page_compression
+process:
+  'css/preprocess': preprocess_css
+  'js/preprocess': preprocess_js
+  'cache/page/max_age': cache_lifetime
+  'response/gzip': page_compression
+destination:
+  plugin: config
+  config_name: system.performance
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_rss.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_rss.yml
new file mode 100644
index 0000000..7f5d3d4
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_rss.yml
@@ -0,0 +1,19 @@
+id: d6_system_rss
+label: Drupal 6 RSS configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - feed_default_items
+    - feed_item_length
+process:
+  'items/limit': feed_default_items
+  'items/view_mode': feed_item_length
+destination:
+  plugin: config
+  config_name: system.rss
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_site.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_site.yml
new file mode 100644
index 0000000..c4920fa
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_site.yml
@@ -0,0 +1,31 @@
+id: d6_system_site
+label: Drupal 6 site configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - site_name
+    - site_mail
+    - site_slogan
+    - site_frontpage
+    - site_403
+    - site_404
+    - drupal_weight_select_max
+    - admin_compact_mode
+process:
+  name: site_name
+  mail: site_mail
+  slogan: site_slogan
+  'page/front': site_frontpage
+  'page/403': site_403
+  'page/404': site_404
+  weight_select_max: drupal_weight_select_max
+  admin_compact_mode: admin_compact_mode
+destination:
+  plugin: config
+  config_name: system.site
+dependencies:
+  module:
+    - migrate_drupal
+    - system
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_settings.yml
new file mode 100644
index 0000000..094e9d7
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_settings.yml
@@ -0,0 +1,19 @@
+id: d6_taxonomy_settings
+label: Drupal 6 taxonomy configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - taxonomy_override_selector
+    - taxonomy_terms_per_page_admin
+process:
+  override_selector: taxonomy_override_selector
+  terms_per_page_admin: taxonomy_terms_per_page_admin
+destination:
+  plugin: config
+  config_name: taxonomy.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - taxonomy
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_term.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_term.yml
new file mode 100644
index 0000000..c70d3c8
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_term.yml
@@ -0,0 +1,35 @@
+id: d6_taxonomy_term
+label: Drupal 6 taxonomy terms
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_term
+process:
+  tid: tid
+  vid:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+  name: name
+  description: description
+  weight: weight
+  parent:
+    -
+      plugin: skip_on_empty
+      method: process
+      source: parent
+    -
+      plugin: migration
+      migration: d6_taxonomy_term
+  changed: timestamp
+destination:
+  plugin: entity:taxonomy_term
+migration_dependencies:
+  required:
+    - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - migrate_drupal
+    - taxonomy
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_vocabulary.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_vocabulary.yml
new file mode 100644
index 0000000..1a9cb9c
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_vocabulary.yml
@@ -0,0 +1,27 @@
+id: d6_taxonomy_vocabulary
+label: Drupal 6 taxonomy vocabularies
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_vocabulary
+process:
+  vid:
+    -
+      plugin: machine_name
+      source: name
+    -
+      plugin: dedupe_entity
+      entity_type: taxonomy_vocabulary
+      field: vid
+      length: 32
+  label: name
+  name: name
+  description: description
+  hierarchy: hierarchy
+  weight: weight
+destination:
+  plugin: entity:taxonomy_vocabulary
+dependencies:
+  module:
+    - migrate_drupal
+    - taxonomy
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node.yml
new file mode 100644
index 0000000..6d0befe
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node.yml
@@ -0,0 +1,30 @@
+id: d6_term_node
+label: Drupal 6 term/node relationships
+migration_tags:
+  - Drupal 6
+load:
+  plugin: d6_term_node
+
+source:
+  plugin: d6_term_node
+
+process:
+  nid: nid
+  type: type
+  # The actual field name is dynamic and will be added by the load plugin.
+
+destination:
+  plugin: entity:node
+migration_dependencies:
+  required:
+    - d6_vocabulary_entity_display
+    - d6_vocabulary_entity_form_display
+    - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+    - migrate.migration.d6_vocabulary_entity_display
+    - migrate.migration.d6_vocabulary_entity_form_display
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node_revision.yml
new file mode 100644
index 0000000..9193738
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node_revision.yml
@@ -0,0 +1,29 @@
+id: d6_term_node_revision
+label: Drupal 6 term/node relationship revisions
+migration_tags:
+  - Drupal 6
+load:
+  plugin: d6_term_node
+  bundle_migration: d6_vocabulary_field
+
+source:
+  plugin: d6_term_node_revision
+
+process:
+  vid: vid
+  type: type
+  # The actual field name is dynamic and will be added by the load plugin.
+
+destination:
+  plugin: entity_revision:node
+migration_dependencies:
+  required:
+    - d6_term_node
+    - d6_node_revision
+dependencies:
+  config:
+    - migrate.migration.d6_node_revision
+    - migrate.migration.d6_term_node
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_text_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_text_settings.yml
new file mode 100644
index 0000000..56d3303
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_text_settings.yml
@@ -0,0 +1,17 @@
+id: d6_text_settings
+label: Drupal 6 teaser length configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - teaser_length
+process:
+  default_summary_length: teaser_length
+destination:
+  plugin: config
+  config_name: text.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - text
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_update_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_update_settings.yml
new file mode 100644
index 0000000..8a61e51
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_update_settings.yml
@@ -0,0 +1,25 @@
+id: d6_update_settings
+label: Drupal 6 update configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - update_max_fetch_attempts
+    - update_fetch_url
+    - update_notification_threshold
+    - update_notify_emails
+    - update_check_frequency
+process:
+  'fetch/max_attempts': update_max_fetch_attempts
+  'fetch/url': update_fetch_url
+  'notification/threshold': update_notification_threshold
+  'notification/emails': update_notify_emails
+  'check/interval_days': update_check_frequency
+destination:
+  plugin: config
+  config_name: update.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - update
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload.yml
new file mode 100644
index 0000000..fedda76
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload.yml
@@ -0,0 +1,34 @@
+id: d6_upload
+label: Drupal 6 file uploads
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_upload
+
+process:
+  nid: nid
+  vid: vid
+  type: type
+  upload:
+    plugin: iterator
+    source: upload
+    process:
+      target_id:
+        plugin: migration
+        migration: d6_file
+        source: fid
+      display: list
+      description: description
+destination:
+  plugin: entity:node
+migration_dependencies:
+  required:
+    - d6_file
+    - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_file
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_display.yml
new file mode 100644
index 0000000..8daf13f
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_display.yml
@@ -0,0 +1,33 @@
+id: d6_upload_entity_display
+label: Drupal 6 upload display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_upload_instance
+  constants:
+    entity_type: node
+    view_mode: default
+    name: upload
+    type: file_default
+    options:
+      label: hidden
+      settings: {}
+process:
+  entity_type: 'constants/entity_type'
+  bundle: node_type
+  view_mode: 'constants/view_mode'
+  field_name: 'constants/name'
+  type: 'constants/type'
+  options: 'constants/options'
+  'options/type': @type
+destination:
+  plugin: component_entity_display
+migration_dependencies:
+  required:
+    - d6_upload_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_upload_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_form_display.yml
new file mode 100644
index 0000000..f248d1d
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_form_display.yml
@@ -0,0 +1,34 @@
+id: d6_upload_entity_form_display
+label: Drupal 6 upload form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_upload_instance
+  constants:
+    empty: {}
+    entity_type: node
+    form_mode: default
+    name: upload
+    type: file_generic
+    options:
+      settings:
+        progress_indicator: throbber
+process:
+  entity_type: 'constants/entity_type'
+  bundle: node_type
+  field_name: 'constants/name'
+  form_mode: 'constants/form_mode'
+  type: 'constants/type'
+  options: 'constants/options'
+  'options/type': @type
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_upload_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_upload_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field.yml
new file mode 100644
index 0000000..15df33a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field.yml
@@ -0,0 +1,29 @@
+id: d6_upload_field
+label: Drupal 6 upload field configuration
+migration_tags:
+  - Drupal 6
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # migration_dependencies.
+  plugin: md_empty
+  provider: upload
+  constants:
+    entity_type: node
+    type: file
+    name: upload
+    cardinality: -1
+    display_field: true
+process:
+  entity_type: 'constants/entity_type'
+  field_name: 'constants/name'
+  type: 'constants/type'
+  cardinality: 'constants/cardinality'
+  'settings/display_field': 'constants/display_field'
+destination:
+  plugin: md_entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - file
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field_instance.yml
new file mode 100644
index 0000000..7013512
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field_instance.yml
@@ -0,0 +1,32 @@
+id: d6_upload_field_instance
+label: Drupal 6 upload field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_upload_instance
+  constants:
+    entity_type: node
+    name: upload
+    settings:
+      description_field: 1
+process:
+  entity_type: 'constants/entity_type'
+  bundle: node_type
+  field_name: 'constants/name'
+  settings: 'constants/settings'
+  'settings/file_extensions': file_extensions
+  'settings/max_filesize': max_filesize
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_upload_field
+    - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+    - migrate.migration.d6_upload_field
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_url_alias.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_url_alias.yml
new file mode 100644
index 0000000..a8579e9
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_url_alias.yml
@@ -0,0 +1,17 @@
+id: d6_url_alias
+label: Drupal 6 URL aliases
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_url_alias
+
+process:
+  source: src
+  alias: dst
+  langcode: language
+
+destination:
+  plugin: url_alias
+dependencies:
+  module:
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user.yml
new file mode 100644
index 0000000..b55e2ec
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user.yml
@@ -0,0 +1,43 @@
+id: d6_user
+label: Drupal 6 user accounts
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user
+process:
+  uid: uid
+  name: name
+  pass: pass
+  mail: mail
+  created: created
+  access: access
+  login: login
+  status: status
+  timezone:
+    plugin: user_update_7002
+    source: timezone
+  preferred_langcode: language
+  init: init
+  roles:
+    plugin: migration
+    migration: d6_user_role
+    source: roles
+  user_picture:
+    plugin: d6_user_picture
+    source: uid
+destination:
+  plugin: entity:user
+  md5_passwords: true
+migration_dependencies:
+  required:
+    - d6_user_role
+  optional:
+    - d6_user_picture_file
+    - d6_user_picture_entity_display
+    - d6_user_picture_entity_form_display
+dependencies:
+  config:
+    - migrate.migration.d6_user_role
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_contact_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_contact_settings.yml
new file mode 100644
index 0000000..7da9e52
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_contact_settings.yml
@@ -0,0 +1,29 @@
+id: d6_user_contact_settings
+label: Drupal 6 user contact settings
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user
+  constants:
+    key: contact
+    module: contact
+process:
+  uid: uid
+  key: 'constants/key'
+  module: 'constants/module'
+  settings:
+    plugin: skip_row_if_not_set
+    index: contact
+    source: data
+
+destination:
+  plugin: user_data
+migration_dependencies:
+  required:
+    - d6_user
+dependencies:
+  config:
+    - migrate.migration.d6_user
+  module:
+    - contact
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_mail.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_mail.yml
new file mode 100644
index 0000000..15ea0d4
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_mail.yml
@@ -0,0 +1,43 @@
+id: d6_user_mail
+label: Drupal 6 user mail configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - user_mail_status_activated_subject
+    - user_mail_status_activated_body
+    - user_mail_password_reset_subject
+    - user_mail_password_reset_body
+    - user_mail_status_deleted_subject
+    - user_mail_status_deleted_body
+    - user_mail_register_admin_created_subject
+    - user_mail_register_admin_created_body
+    - user_mail_register_no_approval_required_subject
+    - user_mail_register_no_approval_required_body
+    - user_mail_user_mail_register_pending_approval_subject
+    - user_mail_user_mail_register_pending_approval_body
+    - user_mail_status_blocked_subject
+    - user_mail_status_blocked_body
+process:
+  'status_activated/subject': user_mail_status_activated_subject
+  'status_activated/body': user_mail_status_activated_body
+  'password_reset/subject': user_mail_password_reset_subject
+  'password_reset/body': user_mail_password_reset_body
+  'cancel_confirm/subject': user_mail_status_deleted_subject
+  'cancel_confirm/body': user_mail_status_deleted_body
+  'register_admin_created/subject': user_mail_register_admin_created_subject
+  'register_admin_created/body': user_mail_register_admin_created_body
+  'register_no_approval_required/subject': user_mail_register_no_approval_required_subject
+  'register_no_approval_required/body': user_mail_register_no_approval_required_body
+  'register_pending_approval/subject': user_mail_user_mail_register_pending_approval_subject
+  'register_pending_approval/body': user_mail_user_mail_register_pending_approval_body
+  'status_blocked/subject': user_mail_status_blocked_subject
+  'status_blocked/body': user_mail_status_blocked_body
+destination:
+  plugin: config
+  config_name: user.mail
+dependencies:
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_display.yml
new file mode 100644
index 0000000..dd6be79
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_display.yml
@@ -0,0 +1,36 @@
+id: d6_user_picture_entity_display
+label: Drupal 6 user picture display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user_picture_instance
+  constants:
+    entity_type: user
+    bundle: user
+    view_mode: default
+    name: user_picture
+    type: image
+    options:
+      label: hidden
+      settings:
+        image_style: ''
+        image_link: content
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  view_mode: 'constants/view_mode'
+  field_name: 'constants/name'
+  type: 'constants/type'
+  options: 'constants/options'
+  'options/type': @type
+destination:
+  plugin: component_entity_display
+migration_dependencies:
+  required:
+    - d6_user_picture_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field_instance
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_form_display.yml
new file mode 100644
index 0000000..9d2182b
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_form_display.yml
@@ -0,0 +1,35 @@
+id: d6_user_picture_entity_form_display
+label: Drupal 6 user picture form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user_picture_instance
+  constants:
+    entity_type: user
+    bundle: user
+    form_mode: default
+    name: user_picture
+    type: image_image
+    options:
+      settings:
+        progress_indicator: throbber
+        preview_image_style: thumbnail
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  field_name: 'constants/name'
+  form_mode: 'constants/form_mode'
+  type: 'constants/type'
+  options: 'constants/options'
+  'options/type': @type
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_user_picture_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field_instance
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field.yml
new file mode 100644
index 0000000..eefb62d
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field.yml
@@ -0,0 +1,26 @@
+id: d6_user_picture_field
+label: Drupal 6 user picture field configuration
+migration_tags:
+  - Drupal 6
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # dependencies.
+  plugin: md_empty
+  constants:
+    entity_type: user
+    type: image
+    name: user_picture
+    cardinality: 1
+process:
+  entity_type: 'constants/entity_type'
+  field_name: 'constants/name'
+  type: 'constants/type'
+  cardinality: 'constants/cardinality'
+destination:
+  plugin: md_entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - image
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field_instance.yml
new file mode 100644
index 0000000..14dfc0e
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field_instance.yml
@@ -0,0 +1,37 @@
+id: d6_user_picture_field_instance
+label: Drupal 6 user picture field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user_picture_instance
+  constants:
+    entity_type: user
+    bundle: user
+    name: user_picture
+    settings:
+      file_extensions: 'png gif jpg jpeg'
+      alt_field: false
+      title_field: false
+      min_resolution: ''
+      alt_field_required: false
+      title_field_required: false
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  field_name: 'constants/name'
+  settings: 'constants/settings'
+  'settings/file_directory': file_directory
+  'settings/max_filesize': max_filesize
+  'settings/max_resolution': max_resolution
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_user_picture_field
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field
+  module:
+    - field
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_file.yml
new file mode 100644
index 0000000..9be0121
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_file.yml
@@ -0,0 +1,30 @@
+id: d6_user_picture_file
+label: Drupal 6 user pictures
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user_picture_file
+  constants:
+    is_public: true
+process:
+  filename: filename
+  uid: uid
+  uri:
+    plugin: file_uri
+    source:
+      - picture
+      - file_directory_path
+      - temp_directory_path
+      - 'constants/is_public'
+destination:
+  plugin: entity:file
+  source_path_property: picture
+migration_dependencies:
+  # Every migration that saves into {file_managed} must have the d6_file
+  # migration as an optional dependency to ensure it runs first.
+  optional:
+    - d6_file
+dependencies:
+  module:
+    - file
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_display.yml
new file mode 100644
index 0000000..7da0e7a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_display.yml
@@ -0,0 +1,44 @@
+id: d6_user_profile_entity_display
+label: Drupal 6 user profile display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_profile_field
+  constants:
+    entity_type: user
+    bundle: user
+    view_mode: default
+    options:
+      label: hidden
+      settings: {}
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  view_mode: 'constants/view_mode'
+  field_name: name
+  type:
+    plugin: static_map
+    source: type
+    map:
+      checkbox: list_default
+      date: datetime_default
+      list: text_default
+      selection: list_default
+      textfield: text_default
+      textarea: text_default
+      url: link_default
+  options: 'constants/options'
+  'options/type': @type
+  hidden:
+    plugin: static_map
+    source: visibility
+    default_value: false
+    map:
+      1: true # PROFILE_PRIVATE
+      4: true # PROFILE_HIDDEN
+destination:
+  plugin: component_entity_display
+dependencies:
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_form_display.yml
new file mode 100644
index 0000000..18fab1b
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_form_display.yml
@@ -0,0 +1,53 @@
+id: d6_user_profile_entity_form_display
+label: Drupal 6 user profile form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_profile_field
+  constants:
+    empty: {}
+    entity_type: user
+    bundle: user
+    form_mode: default
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  field_name: name
+  form_mode: 'constants/form_mode'
+  type:
+    plugin: static_map
+    source: type
+    map:
+      checkbox: boolean_checkbox
+      date: datetime_default
+      list: text_textfield
+      selection: options_select
+      textfield: text_textfield
+      textarea: text_textarea
+      url: link_default
+  options: 'constants/options'
+  'options/type': @type
+  'options/settings':
+    plugin: field_instance_widget_settings
+    source:
+      - @type
+      - 'constants/empty' # we don't have any settings.
+  'options/settings/display_label':  # Single on/off checkboxes need to have display_label = true otherwise their label doesn't show.
+    plugin: static_map
+    default_value: false
+    source: type
+    map:
+      checkbox: true
+  hidden:
+    plugin: static_map
+    source: visibility
+    default_value: false
+    map:
+      1: true # PROFILE_PRIVATE
+      4: true # PROFILE_HIDDEN
+destination:
+  plugin: component_entity_form_display
+dependencies:
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field.yml
new file mode 100644
index 0000000..1f84573
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field.yml
@@ -0,0 +1,39 @@
+id: d6_user_profile_field
+label: Drupal 6 user profile field configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_profile_field
+  constants:
+    entity_type: user
+process:
+  entity_type: 'constants/entity_type'
+  field_name: name
+  type:
+    plugin: static_map
+    source: type
+    map:
+      checkbox: boolean
+      date: datetime
+      list: text
+      selection: list_string
+      textfield: text
+      textarea: text_long
+      url: link
+  settings:
+    plugin: d6_profile_field_settings
+    source: type
+  'settings/allowed_values': options
+  cardinality:
+    plugin: static_map
+    default_value: 1
+    source: type
+    map:
+      list: -1
+destination:
+  plugin: md_entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field_instance.yml
new file mode 100644
index 0000000..30c5938
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field_instance.yml
@@ -0,0 +1,28 @@
+id: d6_user_profile_field_instance
+label: Drupal 6 user profile field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_profile_field
+  constants:
+    entity_type: user
+    bundle: user
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  label: title
+  description: explanation
+  field_name: name
+  required: required
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_user_profile_field
+dependencies:
+  config:
+    - migrate.migration.d6_user_profile_field
+  module:
+    - field
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_role.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_role.yml
new file mode 100644
index 0000000..46edcc8
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_role.yml
@@ -0,0 +1,52 @@
+id: d6_user_role
+label: Drupal 6 user roles
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_user_role
+process:
+  id:
+    -
+      plugin: machine_name
+      source: name
+    -
+      plugin: dedupe_entity
+      entity_type: user_role
+      field: id
+      length: 32
+    -
+      plugin: user_update_8002
+  label: name
+  permissions:
+    -
+      plugin: static_map
+      source: permissions
+      bypass: true
+      map:
+        'use PHP for block visibility': 'use PHP for settings'
+        'administer site-wide contact form': 'administer contact forms'
+        'post comments without approval': 'skip comment approval'
+        'edit own blog entries' : 'edit own blog content'
+        'edit any blog entry' : 'edit any blog content'
+        'delete own blog entries' : 'delete own blog content'
+        'delete any blog entry' : 'delete any blog content'
+        'create forum topics' : 'create forum content'
+        'delete any forum topic' : 'delete any forum content'
+        'delete own forum topics' : 'delete own forum content'
+        'edit any forum topic' : 'edit any forum content'
+        'edit own forum topics' : 'edit own forum content'
+    - plugin: system_update_7000
+    - plugin: node_update_7008
+    - plugin: flatten
+    - plugin: filter_format_permission
+destination:
+  plugin: entity:user_role
+migration_dependencies:
+  required:
+    - d6_filter_format
+dependencies:
+  config:
+    - migrate.migration.d6_filter_format
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_settings.yml
new file mode 100644
index 0000000..09e2eb7
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_settings.yml
@@ -0,0 +1,32 @@
+id: d6_user_settings
+label: Drupal 6 user configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - user_mail_status_blocked_notify
+    - user_mail_status_activated_notify
+    - user_email_verification
+    - user_register
+    - anonymous
+process:
+  'notify/status_blocked': user_mail_status_blocked_notify
+  'notify/status_activated': user_mail_status_activated_notify
+  verify_mail: user_email_verification
+  register:
+    plugin: static_map
+    source: user_register
+    default_value: visitors_admin_approval
+    map:
+      2: visitors_admin_approval
+      1: user_register
+      0: admin_only
+  anonymous: anonymous
+destination:
+  plugin: config
+  config_name: user.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - user
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_view_modes.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_view_modes.yml
new file mode 100644
index 0000000..f8bf6fd
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_view_modes.yml
@@ -0,0 +1,44 @@
+id: d6_view_modes
+label: Drupal 6 view modes
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_view_mode
+  constants:
+    targetEntityType: node
+    status: true
+
+process:
+  mode:
+    plugin: static_map
+    source: view_mode
+    map:
+      0: normal
+      1: preview
+      2: search_index
+      3: search_result
+      4: rss
+      5: print
+      teaser: teaser
+      full: full
+  label:
+    plugin: static_map
+    source: view_mode
+    map:
+      0: "Normal"
+      1: "Preview"
+      2: "Search index"
+      3: "Search result"
+      4: "RSS"
+      5: "Print"
+      teaser: "Teaser"
+      full: "Full"
+  targetEntityType: 'constants/targetEntityType'
+  status: 'constants/status'
+
+destination:
+  plugin: entity:entity_view_mode
+dependencies:
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_display.yml
new file mode 100644
index 0000000..5c0c9c2
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_display.yml
@@ -0,0 +1,34 @@
+id: d6_vocabulary_entity_display
+label: Drupal 6 vocabulary display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_vocabulary_per_type
+  constants:
+    entity_type: node
+    view_mode: default
+    options:
+      label: hidden
+      type: entity_reference_label
+      weight: 20
+
+process:
+  entity_type: 'constants/entity_type'
+  view_mode: 'constants/view_mode'
+  options: 'constants/options'
+  bundle: type
+  field_name:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+destination:
+  plugin: component_entity_display
+migration_dependencies:
+  required:
+    - d6_vocabulary_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_form_display.yml
new file mode 100644
index 0000000..91b540a
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_form_display.yml
@@ -0,0 +1,32 @@
+id: d6_vocabulary_entity_form_display
+label: Drupal 6 vocabulary form display configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_vocabulary_per_type
+  constants:
+    entity_type: node
+    form_mode: default
+    options:
+      type: options_select
+      weight: 20
+process:
+  entity_type: 'constants/entity_type'
+  form_mode: 'constants/form_mode'
+  options: 'constants/options'
+  bundle: type
+  field_name:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+destination:
+  plugin: component_entity_form_display
+migration_dependencies:
+  required:
+    - d6_vocabulary_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field_instance
+  module:
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field.yml
new file mode 100644
index 0000000..e11864f
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field.yml
@@ -0,0 +1,33 @@
+id: d6_vocabulary_field
+label: Drupal 6 vocabulary field configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_vocabulary
+  constants:
+    entity_type: node
+    type: entity_reference
+    target_entity_type: taxonomy_term
+    cardinality: -1
+process:
+  entity_type: 'constants/entity_type'
+  type: 'constants/type'
+  field_name:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+  'settings/target_type': 'constants/target_entity_type'
+  cardinality: 'constants/cardinality'
+destination:
+  plugin: md_entity:field_storage_config
+migration_dependencies:
+  required:
+    - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - entity_reference
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field_instance.yml
new file mode 100644
index 0000000..166155f
--- /dev/null
+++ b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field_instance.yml
@@ -0,0 +1,32 @@
+id: d6_vocabulary_field_instance
+label: Drupal 6 vocabulary field instance configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: d6_taxonomy_vocabulary_per_type
+  constants:
+    entity_type: node
+    auto_create: true
+    selection_handler: 'default:taxonomy_term'
+process:
+  entity_type: 'constants/entity_type'
+  bundle: type
+  field_name:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+  'settings/handler': 'constants/selection_handler'
+  'settings/handler_settings/target_bundles/0': @field_name
+  'settings/handler_settings/auto_create': 'constants/auto_create'
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d6_vocabulary_field
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
index b8a436f..8a43a81 100644
--- a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php
@@ -8,6 +8,9 @@
 namespace Drupal\migrate_drupal\Tests;
 
 use Drupal\migrate\Tests\MigrateTestBase;
+use Drupal\migrate\Entity\Migration;
+use Drupal\migrate\MigrationStorage;
+use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 
 /**
  * Base class for Drupal migration tests.
@@ -42,4 +45,28 @@ protected function getDumpDirectory() {
     return __DIR__ . '/Table';
   }
 
+  /**
+   * Turn all the migration templates for the specified drupal version into
+   * real migration entities so we can test them.
+   *
+   * @param $version
+   *  Drupal version as provided in migration_tags - e.g., 'Drupal 6'.
+   */
+  protected function installMigrations($version) {
+    /** @var MigrationStorage $migration_storage */
+    $migration_storage = \Drupal::entityManager()->getStorage('migration');
+    $migration_templates = $migration_storage->findTemplatesByTag($version);
+    foreach ($migration_templates as $template_name => $template) {
+      try {
+        $migration = Migration::create($template);
+        $migration->save();
+      }
+      catch (PluginNotFoundException $e) {
+        // Migrations requiring modules not enabled will throw an exception.
+        // Ignoring this exception is equivalent to placing config in the
+        // optional subdirectory - the migrations we require for the test will
+        // be successfully saved.
+      }
+    }
+  }
 }
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
index 6b01174..a1ada67 100644
--- a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
@@ -8,8 +8,7 @@
 namespace Drupal\migrate_drupal\Tests;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\Core\Config\ExtensionInstallStorage;
-use Drupal\Core\Config\InstallStorage;
+use Drupal\migrate\ExtensionInstallStorage;
 use Drupal\Core\Config\StorageInterface;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\simpletest\TestBase;
@@ -58,7 +57,7 @@ public function testDrupal() {
     $this->loadDumps($dumps);
 
     $classes = $this->getTestClassesList();
-    $extension_install_storage = new ExtensionInstallStorage(\Drupal::service('config.storage'), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE);
+    $extension_install_storage = new ExtensionInstallStorage(\Drupal::service('config.storage'), ExtensionInstallStorage::MIGRATION_TEMPLATE_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE);
     foreach ($classes as $class) {
       if (is_subclass_of($class, '\Drupal\migrate\Tests\MigrateDumpAlterInterface')) {
         $class::migrateDumpAlter($this);
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
index 697ab2c..b277e3b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
@@ -198,6 +198,8 @@ protected function setUp() {
       'name' => $this->randomMachineName(),
       'status' => 1,
     ])->enforceIsNew(TRUE)->save();
+
+    $this->installMigrations('Drupal 6');
   }
 
   /**
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
index 91727cd..77754cb 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php
@@ -15,6 +15,14 @@
 abstract class MigrateDrupal6TestBase extends MigrateDrupalTestBase {
 
   /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installMigrations('Drupal 6');
+  }
+
+  /**
      * {@inheritdoc}
      */
   protected function getDumpDirectory() {
