diff --git a/core/authorize.php b/core/authorize.php
index fe374fa..f1921cb 100644
--- a/core/authorize.php
+++ b/core/authorize.php
@@ -182,7 +182,7 @@ function authorize_access_allowed(Request $request) {
 }
 
 $bare_html_page_renderer = \Drupal::service('bare_html_page_renderer');
-$response = $bare_html_page_renderer->renderBarePage($content, $page_title, 'maintenance_page', array(
+$response = $bare_html_page_renderer->renderBarePage($content, $page_title, 'page__maintenance', array(
   '#show_messages' => $show_messages,
 ));
 if (!$is_allowed) {
diff --git a/core/includes/batch.inc b/core/includes/batch.inc
index 0958c3a..d273929 100644
--- a/core/includes/batch.inc
+++ b/core/includes/batch.inc
@@ -138,7 +138,7 @@ function _batch_progress_page() {
     // it. While this causes invalid HTML, the same would be true if we didn't,
     // as content is not allowed to appear after </html> anyway.
     $bare_html_page_renderer = \Drupal::service('bare_html_page_renderer');
-    $response = $bare_html_page_renderer->renderBarePage(['#markup' => $fallback], $current_set['title'], 'maintenance_page', array(
+    $response = $bare_html_page_renderer->renderBarePage(['#markup' => $fallback], $current_set['title'], 'page__maintenance', array(
       '#show_messages' => FALSE,
     ));
 
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index b25d28c..9eb5e4b 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -984,7 +984,7 @@ function install_display_output($output, $install_state) {
   }
 
   $bare_html_page_renderer = \Drupal::service('bare_html_page_renderer');
-  $response = $bare_html_page_renderer->renderBarePage($output, $output['#title'], 'install_page', $regions);
+  $response = $bare_html_page_renderer->renderBarePage($output, $output['#title'], 'page__maintenance__install', $regions);
   $default_headers = array(
     'Expires' => 'Sun, 19 Nov 1978 05:00:00 GMT',
     'Last-Modified' => gmdate(DATE_RFC1123, REQUEST_TIME),
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index b1a911a..080fe8c 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1400,9 +1400,7 @@ function theme_get_suggestions($args, $base, $delimiter = '__') {
  *
  * @see system_page_attachments()
  */
-function template_preprocess_maintenance_page(&$variables) {
-  // @todo Rename the templates to page--maintenance + page--install.
-  template_preprocess_page($variables);
+function template_preprocess_page__maintenance(&$variables) {
 
   // @see system_page_attachments()
   $variables['#attached']['library'][] = 'system/maintenance';
@@ -1424,10 +1422,9 @@ function template_preprocess_maintenance_page(&$variables) {
  *   An associative array containing:
  *   - content - An array of page content.
  *
- * @see template_preprocess_maintenance_page()
+ * @see template_preprocess_page__maintenance()
  */
-function template_preprocess_install_page(&$variables) {
-  template_preprocess_maintenance_page($variables);
+function template_preprocess_page__maintenance__install(&$variables) {
 
   // Override the site name that is displayed on the page, since Drupal is
   // still in the process of being installed.
@@ -1721,12 +1718,6 @@ function drupal_common_theme() {
       'function' => 'theme_indentation',
     ),
     // From theme.maintenance.inc.
-    'maintenance_page' => array(
-      'render element' => 'page',
-    ),
-    'install_page' => array(
-      'render element' => 'page',
-    ),
     'maintenance_task_list' => array(
       'variables' => array('items' => NULL, 'active' => NULL,  'variant' => NULL),
     ),
diff --git a/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
index 92071da..bb2a215 100644
--- a/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
@@ -106,7 +106,7 @@ public function onKernelRequestMaintenance(GetResponseEvent $event) {
         $content = Xss::filterAdmin(SafeMarkup::format($this->config->get('system.maintenance')->get('message'), array(
           '@site' => $this->config->get('system.site')->get('name'),
         )));
-        $response = $this->bareHtmlPageRenderer->renderBarePage(['#markup' => $content], $this->t('Site under maintenance'), 'maintenance_page');
+        $response = $this->bareHtmlPageRenderer->renderBarePage(['#markup' => $content], $this->t('Site under maintenance'), 'page__maintenance');
         $response->setStatusCode(503);
         $event->setResponse($response);
       }
diff --git a/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
index 9e1f8ee..5ead056 100644
--- a/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
+++ b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
@@ -38,9 +38,10 @@
  * in a limited environment).
  *
  * Currently, there are two types of bare pages available:
- * - Install (hook_preprocess_install_page(), install-page.html.twig).
- * - Maintenance (hook_preprocess_maintenance_page(),
- *   maintenance-page.html.twig).
+ * - Install (hook_preprocess_page__maintenance__install(),
+ *   page--maintenance--install.html.twig).
+ * - Maintenance (hook_preprocess_page__maintenance(),
+ *   page--maintenance.html.twig).
  *
  * @see \Drupal\Core\Render\MainContent\HtmlRenderer
  */
diff --git a/core/modules/system/src/Controller/DbUpdateController.php b/core/modules/system/src/Controller/DbUpdateController.php
index 61e89a2..740d711 100644
--- a/core/modules/system/src/Controller/DbUpdateController.php
+++ b/core/modules/system/src/Controller/DbUpdateController.php
@@ -198,7 +198,7 @@ public function handle($op, Request $request) {
     }
     $title = isset($output['#title']) ? $output['#title'] : $this->t('Drupal database update');
 
-    return $this->bareHtmlPageRenderer->renderBarePage($output, $title, 'maintenance_page', $regions);
+    return $this->bareHtmlPageRenderer->renderBarePage($output, $title, 'page__maintenance', $regions);
   }
 
   /**
diff --git a/core/modules/system/templates/install-page.html.twig b/core/modules/system/templates/page--maintenance--install.html.twig
similarity index 95%
rename from core/modules/system/templates/install-page.html.twig
rename to core/modules/system/templates/page--maintenance--install.html.twig
index 1d0e479..964821e 100644
--- a/core/modules/system/templates/install-page.html.twig
+++ b/core/modules/system/templates/page--maintenance--install.html.twig
@@ -6,7 +6,7 @@
  * All available variables are mirrored in page.html.twig.
  * Some may be blank but they are provided for consistency.
  *
- * @see template_preprocess_install_page()
+ * @see template_preprocess_page__maintenance__install()
  *
  * @ingroup themeable
  */
diff --git a/core/modules/system/templates/maintenance-page.html.twig b/core/modules/system/templates/page--maintenance.html.twig
similarity index 96%
rename from core/modules/system/templates/maintenance-page.html.twig
rename to core/modules/system/templates/page--maintenance.html.twig
index 748ed5a..6ca60fd 100644
--- a/core/modules/system/templates/maintenance-page.html.twig
+++ b/core/modules/system/templates/page--maintenance.html.twig
@@ -6,7 +6,7 @@
  * All available variables are mirrored in page.html.twig.
  * Some may be blank but they are provided for consistency.
  *
- * @see template_preprocess_maintenance_page()
+ * @see template_preprocess_page__maintenance()
  *
  * @ingroup themeable
  */
diff --git a/core/themes/bartik/bartik.theme b/core/themes/bartik/bartik.theme
index 556342f..e864f9f 100644
--- a/core/themes/bartik/bartik.theme
+++ b/core/themes/bartik/bartik.theme
@@ -59,13 +59,13 @@ function bartik_preprocess_page(&$variables) {
 }
 
 /**
- * Implements hook_preprocess_HOOK() for maintenance-page.html.twig.
+ * Implements hook_preprocess_HOOK() for page--maintenance templates.
  */
-function bartik_preprocess_maintenance_page(&$variables) {
+function bartik_preprocess_page__maintenance(&$variables) {
   // By default, site_name is set to Drupal if no db connection is available
   // or during site installation. Setting site_name to an empty string makes
   // the site and update pages look cleaner.
-  // @see template_preprocess_maintenance_page
+  // @see template_preprocess_page__maintenance
   if (!$variables['db_is_active']) {
     $variables['site_name'] = '';
   }
diff --git a/core/themes/bartik/templates/maintenance-page.html.twig b/core/themes/bartik/templates/page--maintenance.html.twig
similarity index 96%
rename from core/themes/bartik/templates/maintenance-page.html.twig
rename to core/themes/bartik/templates/page--maintenance.html.twig
index 3cd787b..f414e47 100644
--- a/core/themes/bartik/templates/maintenance-page.html.twig
+++ b/core/themes/bartik/templates/page--maintenance.html.twig
@@ -5,7 +5,7 @@
  *
  * All available variables are mirrored in page.html.twig.
  *
- * @see template_preprocess_maintenance_page()
+ * @see template_preprocess_page__maintenance()
  */
  #}
 <div id="page-wrapper">
diff --git a/core/themes/classy/templates/layout/maintenance-page.html.twig b/core/themes/classy/templates/layout/page--maintenance.html.twig
similarity index 96%
rename from core/themes/classy/templates/layout/maintenance-page.html.twig
rename to core/themes/classy/templates/layout/page--maintenance.html.twig
index 7463b02..f929470 100644
--- a/core/themes/classy/templates/layout/maintenance-page.html.twig
+++ b/core/themes/classy/templates/layout/page--maintenance.html.twig
@@ -6,7 +6,7 @@
  * All available variables are mirrored in page.html.twig.
  * Some may be blank but they are provided for consistency.
  *
- * @see template_preprocess_maintenance_page()
+ * @see template_preprocess_page__maintenance()
  */
 #}
 <div class="layout-container">
diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme
index 1a44bc4..0b96450 100644
--- a/core/themes/seven/seven.theme
+++ b/core/themes/seven/seven.theme
@@ -128,17 +128,17 @@ function seven_element_info_alter(&$type) {
 }
 
 /**
- * Implements hook_preprocess_install_page().
+ * Implements hook_preprocess_HOOK() for page--maintenance--install templates.
  */
-function seven_preprocess_install_page(&$variables) {
+function seven_preprocess_page__maintenance__install(&$variables) {
   // Seven has custom styling for the install page.
   $variables['#attached']['library'][] = 'seven/install-page';
 }
 
 /**
- * Implements hook_preprocess_maintenance_page().
+ * Implements hook_preprocess_HOOK() for page--maintenance templates.
  */
-function seven_preprocess_maintenance_page(&$variables) {
+function seven_preprocess_page__maintenance(&$variables) {
   // Seven has custom styling for the maintenance page.
   $variables['#attached']['library'][] = 'seven/maintenance-page';
 }
diff --git a/core/themes/seven/templates/install-page.html.twig b/core/themes/seven/templates/page--maintenance--install.html.twig
similarity index 94%
rename from core/themes/seven/templates/install-page.html.twig
rename to core/themes/seven/templates/page--maintenance--install.html.twig
index b501fb8..d8e28fa 100644
--- a/core/themes/seven/templates/install-page.html.twig
+++ b/core/themes/seven/templates/page--maintenance--install.html.twig
@@ -6,7 +6,7 @@
  * All available variables are mirrored in page.html.twig.
  * Some may be blank but they are provided for consistency.
  *
- * @see template_preprocess_install_page()
+ * @see template_preprocess_page__maintenance__install()
  */
 #}
 <div class="layout-container">
diff --git a/core/themes/seven/templates/maintenance-page.html.twig b/core/themes/seven/templates/page--maintenance.html.twig
similarity index 94%
rename from core/themes/seven/templates/maintenance-page.html.twig
rename to core/themes/seven/templates/page--maintenance.html.twig
index 2286e88..6fd85d5 100644
--- a/core/themes/seven/templates/maintenance-page.html.twig
+++ b/core/themes/seven/templates/page--maintenance.html.twig
@@ -6,7 +6,7 @@
  * All available variables are mirrored in page.html.twig.
  * Some may be blank but they are provided for consistency.
  *
- * @see template_preprocess_maintenance_page()
+ * @see template_preprocess_page__maintenance()
  */
 #}
 <div class="layout-container">
