diff --git a/typo3/sysext/core/Classes/Configuration/Richtext.php b/typo3/sysext/core/Classes/Configuration/Richtext.php
index 93ac17b66a5e79b813f86cb2496d2e49fd45369c..3d39af917d3eb396a3ae7e016ef77cf7671f2732 100644
--- a/typo3/sysext/core/Classes/Configuration/Richtext.php
+++ b/typo3/sysext/core/Classes/Configuration/Richtext.php
@@ -66,7 +66,7 @@ class Richtext
         // overlay preset configuration with pageTs
         ArrayUtility::mergeRecursiveWithOverrule(
             $configuration,
-            $this->cleanDotsFromEditorConfigKeys($pageTs)
+            $this->addFlattenedPageTsConfig($pageTs)
         );
 
         // Handle "mode" / "transformation" config when overridden
@@ -144,18 +144,22 @@ class Richtext
     }
 
     /**
-     * Strip dots from the 'editor.' part of a given TypoScript array
+     * Add all PageTS.RTE options keys to configuration without dots
      *
-     * @param array $typoScriptArray TypoScriptArray (with dots) that may contain an 'editor.' subarray
-     * @return array array with dots stripped from the editor subarray
+     * We need to keep the dotted keys for backwards compatibility like ext:rtehtmlarea
+     *
+     * @param array $typoScriptArray TypoScriptArray
+     * @return array array with config without dots added
      */
-    protected function cleanDotsFromEditorConfigKeys(array $typoScriptArray): array
+    protected function addFlattenedPageTsConfig(array $typoScriptArray): array
     {
-        if (isset($typoScriptArray['editor.'])) {
+        foreach ($typoScriptArray as $key => $data) {
+            if (substr($key, -1) !== '.') {
+                continue;
+            }
             /** @var TypoScriptService $typoScriptService */
             $typoScriptService = GeneralUtility::makeInstance(TypoScriptService::class);
-            $typoScriptArray['editor'] = $typoScriptService->convertTypoScriptArrayToPlainArray($typoScriptArray['editor.']);
-            unset($typoScriptArray['editor.']);
+            $typoScriptArray[substr($key, 0, -1)] = $typoScriptService->convertTypoScriptArrayToPlainArray($typoScriptArray[$key]);
         }
 
         return $typoScriptArray;
diff --git a/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php b/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php
index d4ba9c0d18bb68e9a56a95eb8b03be5bdb6f693b..b9ee5b0a789e9c1e3bddcf93cff8e6f81c19b5bc 100644
--- a/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php
+++ b/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php
@@ -34,7 +34,7 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'removeComments' => '1',
@@ -56,12 +56,18 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         ];
         $expected = [
             'classes.' => [
-                'aClass.' => 'aConfig',
+                'aClass' => 'aConfig',
             ],
             'removeComments' => '1',
             'proc.' => [
                 'overruleMode' => 'myTransformation',
             ],
+            'classes' => [
+                'aClass' => 'aConfig',
+            ],
+            'proc' => [
+                'overruleMode' => 'myTransformation',
+            ],
         ];
         // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
         // which can't be mocked in a sane way
@@ -83,7 +89,7 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'removeComments' => '1',
@@ -101,12 +107,18 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         ];
         $expected = [
             'classes.' => [
-                'aClass.' => 'aConfig',
+                'aClass' => 'aConfig',
             ],
             'removeComments' => '1',
             'proc.' => [
                 'overruleMode' => 'myTransformation',
             ],
+            'classes' => [
+                'aClass' => 'aConfig',
+            ],
+            'proc' => [
+                'overruleMode' => 'myTransformation',
+            ],
         ];
         // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig()
         // which can't be mocked in a sane way
@@ -128,7 +140,7 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'removeComments' => '1',
@@ -137,9 +149,12 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         ];
         $expected = [
             'classes.' => [
-                'aClass.' => 'aConfig',
+                'aClass' => 'aConfig',
             ],
             'removeComments' => '1',
+            'classes' => [
+                'aClass' => 'aConfig',
+            ],
             'proc.' => [
                 'overruleMode' => 'default',
             ],
@@ -164,11 +179,11 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'classes.' => [
-                        'aClass.' => 'anotherConfig',
+                        'aClass' => 'anotherConfig',
                     ],
                     'editor.' => [
                         'config.' => [
@@ -180,7 +195,15 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         ];
         $expected = [
             'classes.' => [
-                'aClass.' => 'anotherConfig',
+                'aClass' => 'anotherConfig',
+            ],
+            'editor.' => [
+                'config.' => [
+                    'contentsCss' => 'my.css'
+                ]
+            ],
+            'classes' => [
+                'aClass' => 'anotherConfig',
             ],
             'editor' => [
                 'config' => [
@@ -211,18 +234,18 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'classes.' => [
-                        'aClass.' => 'anotherConfig',
+                        'aClass' => 'anotherConfig',
                     ],
                 ],
                 'config.' => [
                     'aTable.' => [
                         'aField.' => [
                             'classes.' => [
-                                'aClass.' => 'aThirdConfig',
+                                'aClass' => 'aThirdConfig',
                             ],
                             'editor.' => [
                                 'config.' => [
@@ -235,10 +258,19 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
             ],
         ];
         $expected = [
+            // Config with pagets dots
             'classes.' => [
-                'aClass.' => 'aThirdConfig',
+                'aClass' => 'aThirdConfig',
+            ],
+            'editor.' => [
+                'config.' => [
+                    'contentsCss' => 'my.css'
+                ]
+            ],
+            // Config without pagets dots
+            'classes' => [
+                'aClass' => 'aThirdConfig',
             ],
-            // editor config without pagets dots
             'editor' => [
                 'config' => [
                     'contentsCss' => 'my.css'
@@ -268,18 +300,18 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $pageTsConfig = [
             'properties' => [
                 'classes.' => [
-                    'aClass.' => 'aConfig',
+                    'aClass' => 'aConfig',
                 ],
                 'default.' => [
                     'classes.' => [
-                        'aClass.' => 'anotherConfig',
+                        'aClass' => 'anotherConfig',
                     ],
                 ],
                 'config.' => [
                     'aTable.' => [
                         'aField.' => [
                             'classes.' => [
-                                'aClass.' => 'aThirdConfig',
+                                'aClass' => 'aThirdConfig',
                             ],
                             'editor.' => [
                                 'config.' => [
@@ -289,7 +321,7 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
                             'types.' => [
                                 'textmedia.' => [
                                     'classes.' => [
-                                        'aClass.' => 'aTypeSpecifcConfig',
+                                        'aClass' => 'aTypeSpecifcConfig',
                                     ],
                                     'editor.' => [
                                         'config.' => [
@@ -304,10 +336,19 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
             ],
         ];
         $expected = [
+            // Config with pagets dots
             'classes.' => [
-                'aClass.' => 'aTypeSpecifcConfig',
+                'aClass' => 'aTypeSpecifcConfig',
+            ],
+            'editor.' => [
+                'config.' => [
+                    'contentsCss' => 'your.css'
+                ]
+            ],
+            // Config without pagets dots
+            'classes' => [
+                'aClass' => 'aTypeSpecifcConfig',
             ],
-            // editor config without pagets dots
             'editor' => [
                 'config' => [
                     'contentsCss' => 'your.css'
@@ -371,6 +412,11 @@ class RichtextTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
                 ],
             ],
             'preset' => 'default',
+            'editor.' => [
+                'config.' => [
+                    'width' => 200
+                ],
+            ],
             'proc.' => [
                 'overruleMode' => 'default',
             ],