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 7136049..8ab6df5 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: basic_string
           number_integer:
             default: number_integer
-            us_3: number_integer
-            be_3: number_integer
-            fr_3: number_integer
+            us_0: number_integer
+            be_0: number_integer
+            fr_0: number_integer
             unformatted: number_unformatted
           number_float:
             default: number_decimal
@@ -180,61 +180,6 @@ process:
         - module
         - 'display_settings/format'
       map:
-        number:
-          us_0:
-            scale: 0
-            decimal_separator: .
-            thousand_separator: ','
-            prefix_suffix: true
-          us_1:
-            scale: 1
-            decimal_separator: .
-            thousand_separator: ','
-            prefix_suffix: true
-          us_2:
-            scale: 2
-            decimal_separator: .
-            thousand_separator: ','
-            prefix_suffix: true
-          us_3:
-            thousand_separator: ','
-            prefix_suffix: true
-          be_0:
-            scale: 0
-            decimal_separator: ','
-            thousand_separator: .
-            prefix_suffix: true
-          be_1:
-            scale: 1
-            decimal_separator: ','
-            thousand_separator: .
-            prefix_suffix: true
-          be_2:
-            scale: 2
-            decimal_separator: ','
-            thousand_separator: .
-            prefix_suffix: true
-          be_3:
-            thousand_separator: .
-            prefix_suffix: true
-          fr_0:
-            scale: 0
-            decimal_separator: ','
-            thousand_separator: ' '
-            prefix_suffix: true
-          fr_1:
-            scale: 1
-            decimal_separator: ','
-            thousand_separator: ' '
-            prefix_suffix: true
-          fr_2:
-            scale: 2
-            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/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
index 77f41eb..d927a59 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\process\d6;
 
+use Drupal\migrate\MigrateException;
 use Drupal\migrate\ProcessPluginBase;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\migrate\Row;
@@ -29,9 +30,109 @@ class FieldFormatterSettingsDefaults extends ProcessPluginBase {
   public function transform($value, MigrateExecutable $migrate_executable, Row $row, $destination_property) {
     // If the 1 index is set then the map missed.
     if (isset($value[1])) {
-      $value = $row->getSourceProperty('module') == 'date' ? array('format_type' => 'fallback') : array();
+      $module = $row->getSourceProperty('module');
+      if ($module === 'date') {
+        $value = array('format_type' => 'fallback');
+      }
+      elseif ($module === 'number') {
+        // We have to do the lookup here in the process plugin because for
+        // number we need to calculated the settings based on the type not just
+        // the module which works well for other field types.
+        return $this->numberSettings($row->getDestinationProperty('options/type'), $value[1]);
+      }
+      else {
+        $value = array();
+      }
     }
     return $value;
   }
 
+  /**
+   * @param string $type
+   *   The field type.
+   * @param $format
+   *   The format selected for the field on the display.
+   *
+   * @return array
+   *   The correct default settings.
+   *
+   * @throws \Drupal\migrate\MigrateException
+   */
+  protected function numberSettings($type, $format) {
+    $map = [
+      'number_decimal' => [
+        'us_0' => [
+          'scale' => 0,
+          'decimal_separator' => '.',
+          'thousand_separator' => ',',
+          'prefix_suffix' => TRUE,
+        ],
+        'us_1' => [
+          'scale' => 1,
+          'decimal_separator' => '.',
+          'thousand_separator' => ',',
+          'prefix_suffix' => TRUE,
+        ],
+        'us_2' => [
+          'scale' => 2,
+          'decimal_separator' => '.',
+          'thousand_separator' => ',',
+          'prefix_suffix' => TRUE,
+        ],
+        'be_0' => [
+          'scale' => 0,
+          'decimal_separator' => ',',
+          'thousand_separator' => '.',
+          'prefix_suffix' => TRUE,
+        ],
+        'be_1' => [
+          'scale' => 1,
+          'decimal_separator' => ',',
+          'thousand_separator' => '.',
+          'prefix_suffix' => TRUE,
+        ],
+        'be_2' => [
+          'scale' => 2,
+          'decimal_separator' => ',',
+          'thousand_separator' => '.',
+          'prefix_suffix' => TRUE,
+        ],
+        'fr_0' => [
+          'scale' => 0,
+          'decimal_separator' => ',',
+          'thousand_separator' => ' ',
+          'prefix_suffix' => TRUE,
+        ],
+        'fr_1' => [
+          'scale' => 1,
+          'decimal_separator' => ',',
+          'thousand_separator' => ' ',
+          'prefix_suffix' => TRUE,
+        ],
+        'fr_2' => [
+          'scale' => 2,
+          'decimal_separator' => ',',
+          'thousand_separator' => ' ',
+          'prefix_suffix' => TRUE,
+        ],
+      ],
+      'number_integer' => [
+        'us_0' => [
+          'thousand_separator' => ',',
+          'prefix_suffix' => TRUE,
+        ],
+        'be_0' => [
+          'thousand_separator' => '.',
+          'prefix_suffix' => TRUE,
+        ],
+        'fr_0' => [
+          'thousand_separator' => ' ',
+          'prefix_suffix' => TRUE,
+        ],
+      ],
+    ];
+
+    return isset($map[$type][$format]) ? $map[$type][$format] : [];
+  }
+
 }
diff --git a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
index 870f589..47b2d09 100644
--- a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
+++ b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
@@ -193,11 +193,11 @@ public function load() {
           'format' => 'above',
         ),
         'teaser' => array(
-          'format' => 'unformatted',
+          'format' => 'us_0',
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_3',
+          'format' => 'us_0',
           'exclude' => 0,
         ),
         4 => array(
@@ -708,7 +708,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_3',
+          'format' => 'us_0',
           'exclude' => 0,
         ),
         4 => array(
@@ -808,7 +808,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_3',
+          'format' => 'us_0',
           'exclude' => 0,
         ),
         4 => array(
@@ -840,7 +840,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_3',
+          'format' => 'us_0',
           'exclude' => 0,
         ),
         4 => array(
