diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index d8f3136..a88fca5 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1364,7 +1364,7 @@ function template_preprocess_page(&$variables) {
   // Move some variables to the top level for themer convenience and template cleanliness.
   $variables['title'] = $variables['page']['#title'];
 
-  foreach (system_region_list(\Drupal::theme()->getActiveTheme()->getName()) as $region_key => $region_name) {
+  foreach (system_region_list(\Drupal::theme()->getActiveTheme()->getName(), REGIONS_ALL, FALSE) as $region_key) {
     if (!isset($variables['page'][$region_key])) {
       $variables['page'][$region_key] = array();
     }
diff --git a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
index addd13c..6c1a1fb 100644
--- a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
+++ b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
@@ -225,8 +225,8 @@ protected function prepare(array $main_content, Request $request, RouteMatchInte
 
     // $page is now fully built. Find all non-empty page regions, and add a
     // theme wrapper function that allows them to be consistently themed.
-    $regions = system_region_list(\Drupal::theme()->getActiveTheme()->getName());
-    foreach (array_keys($regions) as $region) {
+    $regions = system_region_list(\Drupal::theme()->getActiveTheme()->getName(), REGIONS_ALL, FALSE);
+    foreach ($regions as $region) {
       if (!empty($page[$region])) {
         $page[$region]['#theme_wrappers'][] = 'region';
         $page[$region]['#region'] = $region;
diff --git a/core/modules/block/src/BlockRepository.php b/core/modules/block/src/BlockRepository.php
index 485a66f..fff1fb8 100644
--- a/core/modules/block/src/BlockRepository.php
+++ b/core/modules/block/src/BlockRepository.php
@@ -57,6 +57,16 @@ protected function getRegionNames() {
   }
 
   /**
+   * Returns the list of regions keyed by machine name.
+   *
+   * @return array
+   *   An array of region machine names keyed by machine name.
+   */
+  protected function getRegions() {
+    return system_region_list($this->getTheme(), REGIONS_ALL, FALSE);
+  }
+
+  /**
    * Gets the current theme for this page.
    *
    * @return string
@@ -71,8 +81,7 @@ protected function getTheme() {
    */
   public function getVisibleBlocksPerRegion(array $contexts) {
     // Build an array of the region names in the right order.
-    $empty = array_fill_keys(array_keys($this->getRegionNames()), array());
-
+    $empty = array_fill_keys($this->getRegions(), array());
     $full = array();
     foreach ($this->blockStorage->loadByProperties(array('theme' => $this->getTheme())) as $block_id => $block) {
       /** @var \Drupal\block\BlockInterface $block */
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 8acaf33..dbbc1bb 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1042,10 +1042,12 @@ function _system_default_theme_features() {
  * @param $show
  *   Possible values: REGIONS_ALL or REGIONS_VISIBLE. Visible excludes hidden
  *   regions.
+ * @param bool $labels
+ *   Whether to return the translated labels as part of the array.
  * @return
  *   An array of regions in the form $region['name'] = 'description'.
  */
-function system_region_list($theme, $show = REGIONS_ALL) {
+function system_region_list($theme, $show = REGIONS_ALL, $labels = TRUE) {
   if (!$theme instanceof Extension) {
     $themes = \Drupal::service('theme_handler')->listInfo();
     if (!isset($themes[$theme])) {
@@ -1058,7 +1060,12 @@ function system_region_list($theme, $show = REGIONS_ALL) {
   // If requested, suppress hidden regions. See block_admin_display_form().
   foreach ($info['regions'] as $name => $label) {
     if ($show == REGIONS_ALL || !isset($info['regions_hidden']) || !in_array($name, $info['regions_hidden'])) {
-      $list[$name] = t($label);
+      if ($labels) {
+        $list[$name] = t($label);
+      }
+      else {
+        $list[$name] = $name;
+      }
     }
   }
 
