diff --git a/core/lib/Drupal/Core/Config/TypedConfigManager.php b/core/lib/Drupal/Core/Config/TypedConfigManager.php
index c025a20..44db990 100644
--- a/core/lib/Drupal/Core/Config/TypedConfigManager.php
+++ b/core/lib/Drupal/Core/Config/TypedConfigManager.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Config;
 
 use Drupal\Component\Utility\NestedArray;
+use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Config\Schema\ConfigSchemaDiscovery;
 use Drupal\Core\Extension\ModuleHandlerInterface;
@@ -91,6 +92,11 @@ public function buildDataDefinition(array $definition, $value, $name = NULL, $pa
         $replace['%key'] = $name;
       }
       $definition['type'] = $this->replaceName($definition['type'], $replace);
+      if (isset($definition['type_regex'])) {
+        if (preg_match($definition['type_regex'], $definition['type'], $matches)) {
+          $definition['type'] = $matches[0];
+        }
+      }
     }
     // Add default values from type definition.
     $definition += $this->getDefinition($definition['type']);
diff --git a/core/modules/block/config/schema/block.schema.yml b/core/modules/block/config/schema/block.schema.yml
index c142f89..135671e 100644
--- a/core/modules/block/config/schema/block.schema.yml
+++ b/core/modules/block/config/schema/block.schema.yml
@@ -24,6 +24,7 @@ block.block.*:
       label: 'Plugin'
     settings:
       type: block.settings.[%parent.plugin]
+      type_regex: '/^[^:]*/'
 
 block.settings.*:
   type: block_settings
