diff --git a/core/config/schema/core.data_types.schema.yml b/core/config/schema/core.data_types.schema.yml
index 1154ba3..ffd9988 100644
--- a/core/config/schema/core.data_types.schema.yml
+++ b/core/config/schema/core.data_types.schema.yml
@@ -650,6 +650,9 @@ field.integer.field_settings:
     suffix:
       type: string
       label: 'Suffix'
+    size:
+      type: string
+      label: 'Database storage size'
 
 field.integer.value:
   type: sequence
diff --git a/core/config/schema/core.entity.data_types.schema.yml b/core/config/schema/core.entity.data_types.schema.yml
index f0b87ee..36e59fb 100644
--- a/core/config/schema/core.entity.data_types.schema.yml
+++ b/core/config/schema/core.entity.data_types.schema.yml
@@ -18,6 +18,9 @@ entity_field_view_display_base:
     label:
       type: string
       label: 'Label setting machine name'
+    settings:
+      type: sequence
+      label: 'Settings'
 
 # Schema for the base of the form mode display format settings.
 entity_field_form_display_base:
@@ -34,3 +37,6 @@ entity_field_form_display_base:
       label: 'Third party settings'
       sequence:
         - type: entity_form_display.third_party.[%key]
+    settings:
+      type: sequence
+      label: 'Settings'
diff --git a/core/config/schema/core.entity.schema.yml b/core/config/schema/core.entity.schema.yml
index 63a35eb..06a4215 100644
--- a/core/config/schema/core.entity.schema.yml
+++ b/core/config/schema/core.entity.schema.yml
@@ -145,35 +145,52 @@ entity_form_display.field.string_textfield:
           type: label
           label: 'Placeholder'
 
-entity_form_display.field.datetime_timestamp:
+entity_form_display.field.string_textarea:
   type: entity_field_form_display_base
-  label: 'Datetime timestamp display format settings'
+  label: 'Textarea display format settings'
   mapping:
     settings:
-      type: sequence
+      type: mapping
       label: 'Settings'
-      sequence:
-        - type: string
+      mapping:
+        rows:
+          type: integer
+          label: 'Rows'
+        placeholder:
+          type: label
+          label: 'Placeholder'
+
+entity_form_display.field.email_default:
+  type: entity_field_form_display_base
+  label: 'Email field display format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        placeholder:
+          type: label
+          label: 'Placeholder'
+
+entity_form_display.field.datetime_timestamp:
+  type: entity_field_form_display_base
+  label: 'Datetime timestamp display format settings'
 
 entity_form_display.field.boolean_checkbox:
   type: entity_field_form_display_base
   label: 'Boolean checkbox display format settings'
   mapping:
     settings:
-      type: sequence
+      type: mapping
       label: 'Settings'
-      sequence:
-        - type: string
+      mapping:
+        display_label:
+          type: boolean
+          label: 'Display label'
 
 entity_form_display.field.hidden:
   type: entity_field_form_display_base
   label: '- Hidden - format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_form_display.field.number:
   type: entity_field_form_display_base
@@ -238,29 +255,11 @@ entity_view_display.field.number_integer:
 entity_view_display.field.number_unformatted:
   type: entity_field_view_display_base
   label: 'Number unformatted display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.uri_link:
   type: entity_field_view_display_base
   label: 'URI as link display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.timestamp_ago:
   type: entity_field_view_display_base
   label: 'Timestamp ago display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManager.php b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
index b7b297b..e6054a9 100644
--- a/core/lib/Drupal/Core/Field/FormatterPluginManager.php
+++ b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
@@ -154,8 +154,9 @@ public function prepareConfiguration($field_type, array $configuration) {
       $field_type = $this->fieldTypeManager->getDefinition($field_type);
       $configuration['type'] = $field_type['default_formatter'];
     }
-    // Fill in default settings values for the formatter.
-    $configuration['settings'] += $this->getDefaultSettings($configuration['type']);
+    // Filter out unknown settings, and fill in defaults for missing settings.
+    $default_settings = $this->getDefaultSettings($configuration['type']);
+    $configuration['settings'] = array_intersect_key($configuration['settings'], $default_settings) + $default_settings;
 
     return $configuration;
   }
diff --git a/core/lib/Drupal/Core/Field/WidgetPluginManager.php b/core/lib/Drupal/Core/Field/WidgetPluginManager.php
index fb7abdd..c251135 100644
--- a/core/lib/Drupal/Core/Field/WidgetPluginManager.php
+++ b/core/lib/Drupal/Core/Field/WidgetPluginManager.php
@@ -153,8 +153,9 @@ public function prepareConfiguration($field_type, array $configuration) {
       $field_type = $this->fieldTypeManager->getDefinition($field_type);
       $configuration['type'] = $field_type['default_widget'];
     }
-    // Fill in default settings values for the widget.
-    $configuration['settings'] += $this->getDefaultSettings($configuration['type']);
+    // Filter out unknown settings, and fill in defaults for missing settings.
+    $default_settings = $this->getDefaultSettings($configuration['type']);
+    $configuration['settings'] = array_intersect_key($configuration['settings'], $default_settings) + $default_settings;
 
     return $configuration;
   }
diff --git a/core/modules/book/config/install/core.entity_form_display.node.book.default.yml b/core/modules/book/config/install/core.entity_form_display.node.book.default.yml
index 6b95416..ac9c4ee 100644
--- a/core/modules/book/config/install/core.entity_form_display.node.book.default.yml
+++ b/core/modules/book/config/install/core.entity_form_display.node.book.default.yml
@@ -36,13 +36,13 @@ content:
   promote:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 15
     third_party_settings: {  }
   sticky:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 16
     third_party_settings: {  }
   body:
diff --git a/core/modules/comment/config/schema/comment.schema.yml b/core/modules/comment/config/schema/comment.schema.yml
index b5bcd86..8b8c6a3 100644
--- a/core/modules/comment/config/schema/comment.schema.yml
+++ b/core/modules/comment/config/schema/comment.schema.yml
@@ -5,20 +5,16 @@ entity_view_display.field.comment_default:
   label: 'Comment display format settings'
   mapping:
     settings:
-      type: sequence
+      type: mapping
       label: 'Settings'
-      sequence:
-        - type: string
+      mapping:
+        pager_id:
+          type: integer
+          label: 'Pager ID'
 
 entity_form_display.field.comment_default:
   type: entity_field_form_display_base
   label: 'Comment display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 action.configuration.comment_publish_action:
   type: action_configuration_default
diff --git a/core/modules/datetime/config/schema/datetime.schema.yml b/core/modules/datetime/config/schema/datetime.schema.yml
index 58e4cc6..3086164 100644
--- a/core/modules/datetime/config/schema/datetime.schema.yml
+++ b/core/modules/datetime/config/schema/datetime.schema.yml
@@ -41,12 +41,6 @@ entity_view_display.field.datetime_default:
 entity_view_display.field.datetime_plain:
   type: entity_field_view_display_base
   label: 'Datetime plain display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_form_display.field.datetime_datelist:
   type: entity_field_form_display_base
@@ -69,9 +63,3 @@ entity_form_display.field.datetime_datelist:
 entity_form_display.field.datetime_default:
   type: entity_field_form_display_base
   label: 'Datetime default display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index 281e78c..4bf3196 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -9,8 +9,8 @@
 
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\simpletest\WebTestBase;
 use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests Datetime field functionality.
@@ -20,6 +20,15 @@
 class DateTimeFieldTest extends WebTestBase {
 
   /**
+   * Set to TRUE to strict check all configuration saved.
+   *
+   * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker
+   *
+   * @var bool
+   */
+  protected $strictConfigSchema = TRUE;
+
+  /**
    * Modules to enable.
    *
    * @var array
@@ -141,6 +150,7 @@ function testDateField() {
 
     // Verify that the plain formatter works.
     $this->display_options['type'] = 'datetime_plain';
+    $this->display_options['settings'] = array();
     entity_get_display($this->field->entity_type, $this->field->bundle, 'full')
       ->setComponent($field_name, $this->display_options)
       ->save();
@@ -206,6 +216,7 @@ function testDatetimeField() {
 
     // Verify that the plain formatter works.
     $this->display_options['type'] = 'datetime_plain';
+    $this->display_options['settings'] = array();
     entity_get_display($this->field->entity_type, $this->field->bundle, 'full')
       ->setComponent($field_name, $this->display_options)
       ->save();
diff --git a/core/modules/entity_reference/config/schema/entity_reference.schema.yml b/core/modules/entity_reference/config/schema/entity_reference.schema.yml
index 5404963..22561c9 100644
--- a/core/modules/entity_reference/config/schema/entity_reference.schema.yml
+++ b/core/modules/entity_reference/config/schema/entity_reference.schema.yml
@@ -55,12 +55,6 @@ entity_view_display.field.entity_reference_entity_view:
 entity_view_display.field.entity_reference_entity_id:
   type: entity_field_view_display_base
   label: 'Entity reference entity ID display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.entity_reference_label:
   type: entity_field_view_display_base
diff --git a/core/modules/field/src/Tests/Email/EmailFieldTest.php b/core/modules/field/src/Tests/Email/EmailFieldTest.php
index 2ce3c46..bfc8e86 100644
--- a/core/modules/field/src/Tests/Email/EmailFieldTest.php
+++ b/core/modules/field/src/Tests/Email/EmailFieldTest.php
@@ -18,6 +18,15 @@
 class EmailFieldTest extends WebTestBase {
 
   /**
+   * Set to TRUE to strict check all configuration saved.
+   *
+   * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker
+   *
+   * @var bool
+   */
+  protected $strictConfigSchema = TRUE;
+
+  /**
    * Modules to enable.
    *
    * @var array
diff --git a/core/modules/field/src/Tests/Number/NumberFieldTest.php b/core/modules/field/src/Tests/Number/NumberFieldTest.php
index ca1fbb0..2208542 100644
--- a/core/modules/field/src/Tests/Number/NumberFieldTest.php
+++ b/core/modules/field/src/Tests/Number/NumberFieldTest.php
@@ -18,6 +18,15 @@
 class NumberFieldTest extends WebTestBase {
 
   /**
+   * Set to TRUE to strict check all configuration saved.
+   *
+   * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker
+   *
+   * @var bool
+   */
+  protected $strictConfigSchema = TRUE;
+
+  /**
    * Modules to enable.
    *
    * @var array
@@ -49,7 +58,7 @@ function testNumberDecimalField() {
       'entity_type' => 'entity_test',
       'type' => 'decimal',
       'settings' => array(
-        'precision' => 8, 'scale' => 4, 'decimal_separator' => '.',
+        'precision' => 8, 'scale' => 4,
       )
     ))->save();
     entity_create('field_config', array(
diff --git a/core/modules/field/src/Tests/String/StringFieldTest.php b/core/modules/field/src/Tests/String/StringFieldTest.php
new file mode 100644
index 0000000..f9a6df2
--- /dev/null
+++ b/core/modules/field/src/Tests/String/StringFieldTest.php
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @file
+ * Definition of \Drupal\field\Tests\String\StringFieldTest.
+ */
+
+namespace Drupal\field\Tests\String;
+
+use Drupal\Component\Utility\Unicode;
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests the creation of string fields.
+ *
+ * @group text
+ */
+class StringFieldTest extends WebTestBase {
+
+  /**
+   * Set to TRUE to strict check all configuration saved.
+   *
+   * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker
+   *
+   * @var bool
+   */
+  protected $strictConfigSchema = TRUE;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('entity_test');
+
+  protected $web_user;
+
+  protected function setUp() {
+    parent::setUp();
+
+    $this->web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content'));
+    $this->drupalLogin($this->web_user);
+  }
+
+  // Test fields.
+
+  /**
+   * Test widgets.
+   */
+  function testTextfieldWidgets() {
+    $this->_testTextfieldWidgets('string', 'string_textfield');
+    $this->_testTextfieldWidgets('string_long', 'string_textarea');
+  }
+
+  /**
+   * Helper function for testTextfieldWidgets().
+   */
+  function _testTextfieldWidgets($field_type, $widget_type) {
+    // Create a field.
+    $field_name = Unicode::strtolower($this->randomMachineName());
+    $field_storage = entity_create('field_storage_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'type' => $field_type
+    ));
+    $field_storage->save();
+    entity_create('field_config', array(
+      'field_storage' => $field_storage,
+      'bundle' => 'entity_test',
+      'label' => $this->randomMachineName() . '_label',
+    ))->save();
+    entity_get_form_display('entity_test', 'entity_test', 'default')
+      ->setComponent($field_name, array(
+        'type' => $widget_type,
+        'settings' => array(
+          'placeholder' => 'A placeholder on ' . $widget_type,
+        ),
+      ))
+      ->save();
+    entity_get_display('entity_test', 'entity_test', 'full')
+      ->setComponent($field_name)
+      ->save();
+
+    // Display creation form.
+    $this->drupalGet('entity_test/add');
+    $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget is displayed');
+    $this->assertNoFieldByName("{$field_name}[0][format]", '1', 'Format selector is not displayed');
+    $this->assertRaw(format_string('placeholder="A placeholder on !widget_type"', array('!widget_type' => $widget_type)));
+
+    // Submit with some value.
+    $value = $this->randomMachineName();
+    $edit = array(
+      "{$field_name}[0][value]" => $value,
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save'));
+    preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
+    $id = $match[1];
+    $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
+
+    // Display the entity.
+    $entity = entity_load('entity_test', $id);
+    $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
+    $content = $display->build($entity);
+    $this->drupalSetContent(drupal_render($content));
+    $this->assertText($value, 'Filtered tags are not displayed');
+  }
+}
diff --git a/core/modules/field/tests/modules/field_test/config/schema/field_test.schema.yml b/core/modules/field/tests/modules/field_test/config/schema/field_test.schema.yml
index f9ef7b7..bc1661e 100644
--- a/core/modules/field/tests/modules/field_test/config/schema/field_test.schema.yml
+++ b/core/modules/field/tests/modules/field_test/config/schema/field_test.schema.yml
@@ -9,6 +9,9 @@ entity_view_display.field.field_test_multiple:
         test_formatter_setting_multiple:
           type: string
           label: 'Test setting'
+        alter:
+          type: boolean
+          label: 'Test altering'
 
 entity_form_display.field.test_field_widget_multiple:
   type: entity_field_form_display_base
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
index a310ad3..ca47572 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
@@ -32,6 +32,7 @@ class TestFieldMultipleFormatter extends FormatterBase {
   public static function defaultSettings() {
     return array(
       'test_formatter_setting_multiple' => 'dummy test string',
+      'alter' => FALSE,
     ) + parent::defaultSettings();
   }
 
diff --git a/core/modules/file/config/schema/file.schema.yml b/core/modules/file/config/schema/file.schema.yml
index cd21f38..0babe38 100644
--- a/core/modules/file/config/schema/file.schema.yml
+++ b/core/modules/file/config/schema/file.schema.yml
@@ -70,43 +70,18 @@ field.file.field_settings:
 entity_view_display.field.file_default:
   type: entity_field_view_display_base
   label: 'Generic file format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.file_rss_enclosure:
   type: entity_field_view_display_base
   label: 'RSS enclosure format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.file_table:
   type: entity_field_view_display_base
   label: 'Table of files format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.file_url_plain:
   type: entity_field_view_display_base
   label: 'URL to file format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
-
 
 entity_form_display.field.file_generic:
   type: entity_field_form_display_base
diff --git a/core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml b/core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml
index c8df303..161ac1d 100644
--- a/core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml
+++ b/core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml
@@ -39,13 +39,13 @@ content:
   promote:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 15
     third_party_settings: {  }
   sticky:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 16
     third_party_settings: {  }
   comment_forum:
diff --git a/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml b/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
index fc80319..59e1bf8 100644
--- a/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
+++ b/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
@@ -28,7 +28,7 @@ content:
     type: comment_default
     weight: 20
     settings:
-      pager_id: '0'
+      pager_id: 0
     third_party_settings: {  }
   body:
     label: hidden
diff --git a/core/modules/image/config/schema/image.schema.yml b/core/modules/image/config/schema/image.schema.yml
index f0db0d5..ef03075 100644
--- a/core/modules/image/config/schema/image.schema.yml
+++ b/core/modules/image/config/schema/image.schema.yml
@@ -34,6 +34,7 @@ image.effect.image_crop:
   mapping:
     anchor:
       label: 'Anchor'
+      type: string
 
 image.effect.image_resize:
   type: image_size
@@ -48,6 +49,7 @@ image.effect.image_rotate:
       label: 'Rotation angle'
     bgcolor:
       label: 'Background color'
+      type: color_hex
     random:
       type: boolean
       label: 'Randomize'
@@ -60,6 +62,10 @@ image.effect.image_scale:
       type: boolean
       label: 'Upscale'
 
+# The image desaturate effect has no settings.
+image.effect.image_desaturate:
+  type: sequence
+
 image.effect.image_scale_and_crop:
   type: image_size
   label: 'Image scale and crop'
@@ -139,10 +145,15 @@ entity_view_display.field.image:
   label: 'Image field display format settings'
   mapping:
     settings:
-      type: sequence
-      label: 'Format settings'
-      sequence:
-        - type: string
+      type: mapping
+      label: 'Settings'
+      mapping:
+        image_link:
+          type: string
+          label: 'Link image to'
+        image_style:
+          type: string
+          label: 'Image style'
 
 entity_form_display.field.image_image:
   type: entity_field_form_display_base
@@ -150,7 +161,7 @@ entity_form_display.field.image_image:
   mapping:
     settings:
       type: mapping
-      label: 'Format settings'
+      label: 'Settings'
       mapping:
         progress_indicator:
           type: string
diff --git a/core/modules/image/src/Tests/ImageFieldTestBase.php b/core/modules/image/src/Tests/ImageFieldTestBase.php
index 33e7fc1..567389f 100644
--- a/core/modules/image/src/Tests/ImageFieldTestBase.php
+++ b/core/modules/image/src/Tests/ImageFieldTestBase.php
@@ -28,6 +28,15 @@
 abstract class ImageFieldTestBase extends WebTestBase {
 
   /**
+   * Set to TRUE to strict check all configuration saved.
+   *
+   * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker
+   *
+   * @var bool
+   */
+  protected $strictConfigSchema = TRUE;
+
+  /**
    * Modules to enable.
    *
    * @var array
@@ -72,13 +81,15 @@ function createImageField($name, $type_name, $storage_settings = array(), $field
       'cardinality' => !empty($storage_settings['cardinality']) ? $storage_settings['cardinality'] : 1,
     ))->save();
 
+    $description = !empty($field_settings['description']) ? $field_settings['description'] : '';
+    unset($field_settings['description']);
     $field_config = entity_create('field_config', array(
       'field_name' => $name,
       'label' => $name,
       'entity_type' => 'node',
       'bundle' => $type_name,
       'required' => !empty($field_settings['required']),
-      'description' => !empty($field_settings['description']) ? $field_settings['description'] : '',
+      'description' => $description,
       'settings' => $field_settings,
     ));
     $field_config->save();
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
index 9d58ef4..c1daf7d 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
@@ -57,9 +57,9 @@ process:
             plain: string
           number_integer:
             default: number_integer
-            us_0: number_integer
-            be_0: number_integer
-            fr_0: number_integer
+            us_3: number_integer
+            be_3: number_integer
+            fr_3: number_integer
             unformatted: number_unformatted
           number_float:
             default: number_decimal
@@ -196,6 +196,9 @@ process:
             decimal_separator: .
             thousand_separator: ','
             prefix_suffix: true
+          us_3:
+            thousand_separator: ','
+            prefix_suffix: true
           be_0:
             scale: 0
             decimal_separator: ','
@@ -211,6 +214,9 @@ process:
             decimal_separator: ','
             thousand_separator: .
             prefix_suffix: true
+          be_3:
+            thousand_separator: .
+            prefix_suffix: true
           fr_0:
             scale: 0
             decimal_separator: ','
@@ -226,6 +232,9 @@ process:
             decimal_separator: ','
             thousand_separator: ' '
             prefix_suffix: true
+          fr_3:
+            thousand_separator: ' '
+            prefix_suffix: true
         link:
           default:
             trim_length: '80'
diff --git a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
index dafb18f..7bf45c3 100644
--- a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
+++ b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
@@ -197,7 +197,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -708,7 +708,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -808,7 +808,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -840,7 +840,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
index bcb6f07..4759dc0 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
@@ -116,8 +116,6 @@ public function testEntityDisplaySettings() {
     $expected['weight'] = 2;
     $expected['type'] = 'number_integer';
     $expected['settings'] = array(
-      'scale' => 0,
-      'decimal_separator' => '.',
       'thousand_separator' => ',',
       'prefix_suffix' => TRUE,
     );
@@ -126,6 +124,7 @@ public function testEntityDisplaySettings() {
     $expected['weight'] = 3;
     $expected['type'] = 'number_decimal';
     $expected['settings']['scale'] = 2;
+    $expected['settings']['decimal_separator'] = '.';
     $component = $display->getComponent('field_test_three');
     $this->assertEqual($component, $expected);
 
diff --git a/core/modules/options/config/schema/options.schema.yml b/core/modules/options/config/schema/options.schema.yml
index 03cb81f..f0d444a 100644
--- a/core/modules/options/config/schema/options.schema.yml
+++ b/core/modules/options/config/schema/options.schema.yml
@@ -114,39 +114,15 @@ field.list_string.value:
 entity_view_display.field.list_default:
   type: entity_field_view_display_base
   label: 'Options list default display settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.list_key:
   type: entity_field_view_display_base
   label: 'Key format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_form_display.field.options_buttons:
   type: entity_field_form_display_base
   label: 'Check boxes/radio buttons format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_form_display.field.options_select:
   type: entity_field_form_display_base
   label: 'Select list format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
diff --git a/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml b/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
index b24ca9e..c3540f9 100644
--- a/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
+++ b/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
@@ -36,13 +36,13 @@ content:
   promote:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 15
     third_party_settings: {  }
   sticky:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 16
     third_party_settings: {  }
   body:
diff --git a/core/modules/path/config/schema/path.schema.yml b/core/modules/path/config/schema/path.schema.yml
index f595e4b..ebed69c 100644
--- a/core/modules/path/config/schema/path.schema.yml
+++ b/core/modules/path/config/schema/path.schema.yml
@@ -3,6 +3,3 @@
 entity_form_display.field.path:
   type: entity_field_form_display_base
   label: 'Link format settings'
-  mapping:
-    settings:
-      type: sequence
diff --git a/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php b/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
index ea8630b..ec41a77 100644
--- a/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
+++ b/core/modules/rdf/src/Tests/ImageFieldAttributesTest.php
@@ -59,6 +59,7 @@ protected function setUp() {
         'properties' => array('og:image'),
         'mapping_type' => 'rel',
       ))
+      ->setBundleMapping(array('types' => array()))
       ->save();
 
     // Get the test image that simpletest provides.
diff --git a/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php b/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
index 94fe38b..91abf5e 100644
--- a/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
+++ b/core/modules/responsive_image/src/Tests/ResponsiveImageFieldDisplayTest.php
@@ -103,7 +103,6 @@ public function _testResponsiveImageFieldFormatters($scheme) {
     // Use the responsive image formatter linked to file formatter.
     $display_options = array(
       'type' => 'responsive_image',
-      'module' => 'responsive_image',
       'settings' => array(
         'image_link' => 'file'
       ),
diff --git a/core/modules/taxonomy/config/schema/taxonomy.schema.yml b/core/modules/taxonomy/config/schema/taxonomy.schema.yml
index 579f673..e9aed2b 100644
--- a/core/modules/taxonomy/config/schema/taxonomy.schema.yml
+++ b/core/modules/taxonomy/config/schema/taxonomy.schema.yml
@@ -94,12 +94,6 @@ entity_view_display.field.taxonomy_term_reference_rss_category:
 entity_view_display.field.taxonomy_term_reference_link:
   type: entity_field_view_display_base
   label: 'Taxonomy format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_form_display.field.taxonomy_autocomplete:
   type: entity_field_form_display_base
diff --git a/core/modules/text/config/schema/text.schema.yml b/core/modules/text/config/schema/text.schema.yml
index f472aec..f211cbf 100644
--- a/core/modules/text/config/schema/text.schema.yml
+++ b/core/modules/text/config/schema/text.schema.yml
@@ -93,12 +93,6 @@ field.text_with_summary.value:
 entity_view_display.field.text_default:
   type: entity_field_view_display_base
   label: 'Formatted text default display format settings'
-  mapping:
-    settings:
-      type: sequence
-      label: 'Settings'
-      sequence:
-        - type: string
 
 entity_view_display.field.text_summary_or_trimmed:
   type: entity_field_view_display_base
diff --git a/core/modules/text/src/Tests/TextFieldTest.php b/core/modules/text/src/Tests/TextFieldTest.php
index 0cb7b3f..515097a 100644
--- a/core/modules/text/src/Tests/TextFieldTest.php
+++ b/core/modules/text/src/Tests/TextFieldTest.php
@@ -9,31 +9,21 @@
 
 use Drupal\Component\Utility\String;
 use Drupal\Component\Utility\Unicode;
-use Drupal\simpletest\WebTestBase;
+use Drupal\field\Tests\String\StringFieldTest;
 
 /**
  * Tests the creation of text fields.
  *
  * @group text
  */
-class TextFieldTest extends WebTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('entity_test');
+class TextFieldTest extends StringFieldTest {
 
   protected $admin_user;
-  protected $web_user;
 
   protected function setUp() {
     parent::setUp();
 
     $this->admin_user = $this->drupalCreateUser(array('administer filters'));
-    $this->web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content'));
-    $this->drupalLogin($this->web_user);
   }
 
   // Test fields.
@@ -82,59 +72,6 @@ function testTextfieldWidgets() {
   }
 
   /**
-   * Helper function for testTextfieldWidgets().
-   */
-  function _testTextfieldWidgets($field_type, $widget_type) {
-    // Create a field.
-    $field_name = Unicode::strtolower($this->randomMachineName());
-    $field_storage = entity_create('field_storage_config', array(
-      'field_name' => $field_name,
-      'entity_type' => 'entity_test',
-      'type' => $field_type
-    ));
-    $field_storage->save();
-    entity_create('field_config', array(
-      'field_storage' => $field_storage,
-      'bundle' => 'entity_test',
-      'label' => $this->randomMachineName() . '_label',
-    ))->save();
-    entity_get_form_display('entity_test', 'entity_test', 'default')
-      ->setComponent($field_name, array(
-        'type' => $widget_type,
-        'settings' => array(
-          'placeholder' => 'A placeholder on ' . $widget_type,
-        ),
-      ))
-      ->save();
-    entity_get_display('entity_test', 'entity_test', 'full')
-      ->setComponent($field_name)
-      ->save();
-
-    // Display creation form.
-    $this->drupalGet('entity_test/add');
-    $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget is displayed');
-    $this->assertNoFieldByName("{$field_name}[0][format]", '1', 'Format selector is not displayed');
-    $this->assertRaw(format_string('placeholder="A placeholder on !widget_type"', array('!widget_type' => $widget_type)));
-
-    // Submit with some value.
-    $value = $this->randomMachineName();
-    $edit = array(
-      "{$field_name}[0][value]" => $value,
-    );
-    $this->drupalPostForm(NULL, $edit, t('Save'));
-    preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
-    $id = $match[1];
-    $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
-
-    // Display the entity.
-    $entity = entity_load('entity_test', $id);
-    $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
-    $content = $display->build($entity);
-    $this->drupalSetContent(drupal_render($content));
-    $this->assertText($value, 'Filtered tags are not displayed');
-  }
-
-  /**
    * Test widgets + 'formatted_text' setting.
    */
   function testTextfieldWidgetsFormatted() {
diff --git a/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
index 243f1d6..a121cf2 100644
--- a/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
+++ b/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
@@ -63,13 +63,13 @@ content:
   promote:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 15
     third_party_settings: {  }
   sticky:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 16
     third_party_settings: {  }
   comment:
diff --git a/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml b/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
index 792398d..32ffd5b 100644
--- a/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
+++ b/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
@@ -37,13 +37,13 @@ content:
   promote:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 15
     third_party_settings: {  }
   sticky:
     type: boolean_checkbox
     settings:
-      display_label: '1'
+      display_label: true
     weight: 16
     third_party_settings: {  }
   path:
diff --git a/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
index b201e5e..11a80d8 100644
--- a/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
+++ b/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
@@ -44,7 +44,7 @@ content:
     type: comment_default
     weight: 20
     settings:
-      pager_id: '0'
+      pager_id: 0
     third_party_settings: {  }
   links:
     weight: 100
