diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index 584982f6074535a9b4e7c34ce88c5b156b0c5c18..385ef48f27e8b7e076e8ded287a425472dad518e 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -422,8 +422,8 @@ function menu_secondary_menu() {
  *   Returns menu name, if exist
  */
 function _menu_get_links_source($name, $default) {
-  $config = \Drupal::config('menu.settings');
-  return \Drupal::moduleHandler()->moduleExists('menu') ? $config->get($name) : $default;
+  $config = \Drupal::config('menu_ui.settings');
+  return \Drupal::moduleHandler()->moduleExists('menu_ui') ? $config->get($name) : $default;
 }
 
 /**
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockLanguageCacheTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockLanguageCacheTest.php
index 5fec407e5d0d8ec0c8ee016607d0dec5f17ed834..8fee2e257b68fcf1a515dffb368d8e015e80bf6e 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockLanguageCacheTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockLanguageCacheTest.php
@@ -21,7 +21,7 @@ class BlockLanguageCacheTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('block', 'language', 'menu');
+  public static $modules = array('block', 'language', 'menu_ui');
 
   /**
    * List of langcodes.
diff --git a/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationListUiTest.php b/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationListUiTest.php
index 06ede2db0f09b32c6c9972c5c4cb9636d7476399..d0aac6b2b874e99fda80620c1e6f96d9c5222fdf 100644
--- a/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationListUiTest.php
+++ b/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationListUiTest.php
@@ -30,7 +30,7 @@ class ConfigTranslationListUiTest extends WebTestBase {
     'custom_block',
     'field',
     'field_ui',
-    'menu',
+    'menu_ui',
     'node',
     'shortcut',
     'taxonomy',
diff --git a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
index 637392925554bd42f2f1b90672dbc8e6b013c032..3aebca32592aaf6edfb3398c21f6f4f0e45a2ce2 100644
--- a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
+++ b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
@@ -20,7 +20,7 @@ class ForumTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('taxonomy', 'comment', 'forum', 'node', 'block', 'menu', 'help');
+  public static $modules = array('taxonomy', 'comment', 'forum', 'node', 'block', 'menu_ui', 'help');
 
   /**
    * A user with various administrative privileges.
diff --git a/core/modules/menu/menu.contextual_links.yml b/core/modules/menu/menu.contextual_links.yml
deleted file mode 100644
index 5af427ec138b199af18a6f91144a97049a3da05c..0000000000000000000000000000000000000000
--- a/core/modules/menu/menu.contextual_links.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-menu_edit:
-  title: 'Edit menu'
-  route_name: 'menu.menu_edit'
-  group: menu
diff --git a/core/modules/menu/menu.local_actions.yml b/core/modules/menu/menu.local_actions.yml
deleted file mode 100644
index cca55d8a762e04925c9e0884cd1898bd9ef7b175..0000000000000000000000000000000000000000
--- a/core/modules/menu/menu.local_actions.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-menu_link_add:
-  route_name: menu.link_add
-  title: 'Add link'
-  appears_on:
-    - menu.menu_edit
-
-menu.menu_add:
-  route_name: menu.menu_add
-  title: 'Add menu'
-  appears_on:
-    - menu.overview_page
diff --git a/core/modules/menu/menu.local_tasks.yml b/core/modules/menu/menu.local_tasks.yml
deleted file mode 100644
index 038487cda32e4c57d9b283ddf6c090f87dbed76e..0000000000000000000000000000000000000000
--- a/core/modules/menu/menu.local_tasks.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-menu.menu_edit:
-  title: 'Edit menu'
-  route_name: menu.menu_edit
-  base_route: menu.menu_edit
-
-menu.overview_page:
-  title: 'List'
-  route_name: menu.overview_page
-  base_route: menu.overview_page
-
-menu.settings:
-  title: 'Settings'
-  route_name: menu.settings
-  base_route: menu.overview_page
-  weight: 100
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php b/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
index ebb28bf89435dbb231b571c3068e8a6c04e99014..7a2af0e30246c3d35222843442dcbef4c0736742 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/Entity/MenuLink.php
@@ -111,7 +111,7 @@ class MenuLink extends Entity implements \ArrayAccess, MenuLinkInterface {
    *
    * @var string
    */
-  public $module = 'menu';
+  public $module = 'menu_ui';
 
   /**
    * A flag for whether the link should be rendered in menus.
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php
index f316b207838e4e5531d8024604627b4074ec5f0a..d4783ccdd2ed934b36757afa77c8d8048fda8893 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php
@@ -31,7 +31,7 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A
 
         case 'delete':
           // Only items created by the menu module can be deleted.
-          return $entity->module == 'menu' || $entity->updated == 1;
+          return $entity->module == 'menu_ui' || $entity->updated == 1;
 
       }
     }
diff --git a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
index 3f4617eb8bb27afb737ece17086c43cf12fd3629..0c4ac19b96a984b4b36e5d2886bdffca9cf623fb 100644
--- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
+++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkFormController.php
@@ -98,7 +98,7 @@ public function form(array $form, array &$form_state) {
     if (isset($menu_link->options['fragment'])) {
       $path .= '#' . $menu_link->options['fragment'];
     }
-    if ($menu_link->module == 'menu') {
+    if ($menu_link->module == 'menu_ui') {
       $form['link_path'] = array(
         '#type' => 'textfield',
         '#title' => t('Path'),
@@ -137,7 +137,7 @@ public function form(array $form, array &$form_state) {
     );
 
     // Generate a list of possible parents (not including this link or descendants).
-    $options = menu_parent_options(menu_get_menus(), $menu_link);
+    $options = menu_ui_parent_options(menu_ui_get_menus(), $menu_link);
     $default = $menu_link->menu_name . ':' . $menu_link->plid;
     if (!isset($options[$default])) {
       $default = 'tools:0';
@@ -298,7 +298,7 @@ public function save(array $form, array &$form_state) {
     if ($saved) {
       drupal_set_message(t('The menu link has been saved.'));
       $form_state['redirect_route'] = array(
-        'route_name' => 'menu.menu_edit',
+        'route_name' => 'menu_ui.menu_edit',
         'route_parameters' => array(
           'menu' => $menu_link->menu_name,
         ),
diff --git a/core/modules/menu_link/menu_link.module b/core/modules/menu_link/menu_link.module
index ea3bb1f34c6033c1a30db0e914977c5d4ff231dd..543175b81470f877fac508a8f016d8148e8ce79b 100644
--- a/core/modules/menu_link/menu_link.module
+++ b/core/modules/menu_link/menu_link.module
@@ -15,7 +15,7 @@ function menu_link_help($path, $arg) {
     case 'admin/help#menu_link':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Menu Link module allows users to create menu links. It is required by the Menu module, which provides an interface for managing menus. See the <a href="!menu-help">Menu module help page</a> for more information.', array('!menu-help' => \Drupal::url('help.page', array('name' => 'menu')))) . '</p>';
+      $output .= '<p>' . t('The Menu Link module allows users to create menu links. It is required by the Menu module, which provides an interface for managing menus. See the <a href="!menu-help">Menu module help page</a> for more information.', array('!menu-help' => \Drupal::url('help.page', array('name' => 'menu_ui')))) . '</p>';
       return $output;
   }
 }
@@ -203,12 +203,12 @@ function menu_link_maintain($module, $op, $link_path, $link_title = NULL) {
 function menu_link_system_breadcrumb_alter(array &$breadcrumb, array $attributes, array $context) {
   // Custom breadcrumb behavior for editing menu links, we append a link to
   // the menu in which the link is found.
-  if (!empty($attributes[RouteObjectInterface::ROUTE_NAME]) && $attributes[RouteObjectInterface::ROUTE_NAME] == 'menu.link_edit' && !empty($attributes['menu_link'])) {
+  if (!empty($attributes[RouteObjectInterface::ROUTE_NAME]) && $attributes[RouteObjectInterface::ROUTE_NAME] == 'menu_ui.link_edit' && !empty($attributes['menu_link'])) {
     $menu_link = $attributes['menu_link'];
     if (($menu_link instanceof MenuLinkInterface) && !$menu_link->isNew()) {
       // Add a link to the menu admin screen.
       $menu = entity_load('menu', $menu_link->menu_name);
-      $breadcrumb[] = Drupal::l($menu->label(), 'menu.menu_edit', array('menu' => $menu->id));
+      $breadcrumb[] = Drupal::l($menu->label(), 'menu_ui.menu_edit', array('menu' => $menu->id));
     }
   }
 }
diff --git a/core/modules/menu/config/menu.settings.yml b/core/modules/menu_ui/config/menu_ui.settings.yml
similarity index 100%
rename from core/modules/menu/config/menu.settings.yml
rename to core/modules/menu_ui/config/menu_ui.settings.yml
diff --git a/core/modules/menu/config/schema/menu.schema.yml b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
similarity index 96%
rename from core/modules/menu/config/schema/menu.schema.yml
rename to core/modules/menu_ui/config/schema/menu_ui.schema.yml
index 5431b7b81d570ddc26358642a7332722cd91620b..d5dfd645bc12f14023ec559ea1274fcab6b853cf 100644
--- a/core/modules/menu/config/schema/menu.schema.yml
+++ b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
@@ -1,6 +1,6 @@
 # Schema for configuration files of the Menu module.
 
-menu.settings:
+menu_ui.settings:
   type: mapping
   label: 'Menu settings'
   mapping:
diff --git a/core/modules/menu/css/menu.admin.css b/core/modules/menu_ui/css/menu_ui.admin.css
similarity index 100%
rename from core/modules/menu/css/menu.admin.css
rename to core/modules/menu_ui/css/menu_ui.admin.css
diff --git a/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Controller/MenuController.php
similarity index 89%
rename from core/modules/menu/lib/Drupal/menu/Controller/MenuController.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Controller/MenuController.php
index 22f4f00a875224c52f3422c9b4d3ea0ab6a4b296..fad5de5ea38c417feb7bff56a43cc3610964b3f1 100644
--- a/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Controller/MenuController.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Controller\MenuController.
+ * Contains \Drupal\menu_ui\Controller\MenuController.
  */
 
-namespace Drupal\menu\Controller;
+namespace Drupal\menu_ui\Controller;
 
 use Drupal\Component\Utility\Xss;
 use Drupal\Core\Controller\ControllerBase;
@@ -34,7 +34,7 @@ public function getParentOptions(Request $request) {
         $available_menus[$menu] = $menu;
       }
     }
-    $options = _menu_get_options(menu_get_menus(), $available_menus, array('mlid' => 0));
+    $options = _menu_ui_get_options(menu_ui_get_menus(), $available_menus, array('mlid' => 0));
 
     return new JsonResponse($options);
   }
diff --git a/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuDeleteForm.php
similarity index 94%
rename from core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuDeleteForm.php
index bcd5611a5d797d418fddca98140421d39728bfb2..98a45dbc49f11432ffdccb47f76458c3b9753635 100644
--- a/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuDeleteForm.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Form\MenuDeleteForm.
+ * Contains \Drupal\menu_ui\Form\MenuDeleteForm.
  */
 
-namespace Drupal\menu\Form;
+namespace Drupal\menu_ui\Form;
 
 use Drupal\Core\Database\Connection;
 use Drupal\Core\Entity\EntityConfirmFormBase;
@@ -66,7 +66,7 @@ public function getQuestion() {
    */
   public function getCancelRoute() {
     return array(
-      'route_name' => 'menu.menu_edit',
+      'route_name' => 'menu_ui.menu_edit',
       'route_parameters' => array(
         'menu' => $this->entity->id(),
       ),
@@ -97,7 +97,7 @@ public function getConfirmText() {
    * {@inheritdoc}
    */
   public function submit(array $form, array &$form_state) {
-    $form_state['redirect_route']['route_name'] = 'menu.overview_page';
+    $form_state['redirect_route']['route_name'] = 'menu_ui.overview_page';
 
     // Locked menus may not be deleted.
     if ($this->entity->isLocked()) {
diff --git a/core/modules/menu/lib/Drupal/menu/Form/MenuLinkDeleteForm.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkDeleteForm.php
similarity index 86%
rename from core/modules/menu/lib/Drupal/menu/Form/MenuLinkDeleteForm.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkDeleteForm.php
index efc9cdd31a72d0ba3e6de5c308531802f9994b45..eeb40a65fafe88addeb444818c6f1d85df615923 100644
--- a/core/modules/menu/lib/Drupal/menu/Form/MenuLinkDeleteForm.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkDeleteForm.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Form\MenuLinkDeleteForm.
+ * Contains \Drupal\menu_ui\Form\MenuLinkDeleteForm.
  */
 
-namespace Drupal\menu\Form;
+namespace Drupal\menu_ui\Form;
 
 use Drupal\Core\Entity\EntityConfirmFormBase;
 
@@ -26,7 +26,7 @@ public function getQuestion() {
    */
   public function getCancelRoute() {
     return array(
-      'route_name' => 'menu.menu_edit',
+      'route_name' => 'menu_ui.menu_edit',
       'route_parameters' => array(
         'menu' => $this->entity->menu_name,
       ),
@@ -42,7 +42,7 @@ public function submit(array $form, array &$form_state) {
     drupal_set_message(t('The menu link %title has been deleted.', $t_args));
     watchdog('menu', 'Deleted menu link %title.', $t_args, WATCHDOG_NOTICE);
     $form_state['redirect_route'] = array(
-      'route_name' => 'menu.menu_edit',
+      'route_name' => 'menu_ui.menu_edit',
       'route_parameters' => array(
         'menu' => $this->entity->menu_name,
       ),
diff --git a/core/modules/menu/lib/Drupal/menu/Form/MenuLinkResetForm.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkResetForm.php
similarity index 87%
rename from core/modules/menu/lib/Drupal/menu/Form/MenuLinkResetForm.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkResetForm.php
index 7542c57fb083f40d8c41f1291c073e19f21610e9..31b23aba1aebaa4923a4b3f5b578f6e3ac80ec67 100644
--- a/core/modules/menu/lib/Drupal/menu/Form/MenuLinkResetForm.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Form/MenuLinkResetForm.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Form\MenuLinkResetForm.
+ * Contains \Drupal\menu_ui\Form\MenuLinkResetForm.
  */
 
-namespace Drupal\menu\Form;
+namespace Drupal\menu_ui\Form;
 
 use Drupal\Core\Entity\EntityConfirmFormBase;
 
@@ -26,7 +26,7 @@ public function getQuestion() {
    */
   public function getCancelRoute() {
     return array(
-      'route_name' => 'menu.menu_edit',
+      'route_name' => 'menu_ui.menu_edit',
       'route_parameters' => array(
         'menu' => $this->entity->menu_name,
       ),
@@ -54,7 +54,7 @@ public function submit(array $form, array &$form_state) {
     $new_menu_link = $this->entity->reset();
     drupal_set_message(t('The menu link was reset to its default settings.'));
     $form_state['redirect_route'] = array(
-      'route_name' => 'menu.menu_edit',
+      'route_name' => 'menu_ui.menu_edit',
       'route_parameters' => array(
         'menu' => $new_menu_link->menu_name,
       ),
diff --git a/core/modules/menu/lib/Drupal/menu/MenuFormController.php b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuFormController.php
similarity index 99%
rename from core/modules/menu/lib/Drupal/menu/MenuFormController.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/MenuFormController.php
index de585ccd99d6be3f648fe4fcf075c32414711d39..82c40d0f2e1e029f67d2c31c9c85d357ebf67bce 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuFormController.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuFormController.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\MenuFormController.
+ * Contains \Drupal\menu_ui\MenuFormController.
  */
 
-namespace Drupal\menu;
+namespace Drupal\menu_ui;
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Entity\EntityFormController;
@@ -240,7 +240,7 @@ public function save(array $form, array &$form_state) {
    *
    * This form constructor can be integrated as a section into another form. It
    * relies on the following keys in $form_state:
-   * - menu: A loaded menu definition, as returned by menu_load().
+   * - menu: A loaded menu definition, as returned by menu_ui_load().
    * - menu_overview_form_parents: An array containing the parent keys to this
    *   form.
    * Forms integrating this section should call menu_overview_form_submit() from
diff --git a/core/modules/menu/lib/Drupal/menu/MenuListBuilder.php b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListBuilder.php
similarity index 95%
rename from core/modules/menu/lib/Drupal/menu/MenuListBuilder.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/MenuListBuilder.php
index b1df5df8e8ce5acd8004b1f1382604e187716dba..0c6615d88dc4a82ce3e0496d6fbd62586296402b 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuListBuilder.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListBuilder.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\MenuListBuilder.
+ * Contains \Drupal\menu_ui\MenuListBuilder.
  */
 
-namespace Drupal\menu;
+namespace Drupal\menu_ui;
 
 use Drupal\Component\Utility\Xss;
 use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
diff --git a/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListBuilder.php.orig b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListBuilder.php.orig
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/core/modules/menu/lib/Drupal/menu/MenuSettingsForm.php b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuSettingsForm.php
similarity index 91%
rename from core/modules/menu/lib/Drupal/menu/MenuSettingsForm.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/MenuSettingsForm.php
index eddbaec908a1cd727ecaf1857790d2d4e524326d..48a12bde53be8f88bb0de62762bcc791863a3a19 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuSettingsForm.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuSettingsForm.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\MenuSettingsForm.
+ * Contains \Drupal\menu_ui\MenuSettingsForm.
  */
 
-namespace Drupal\menu;
+namespace Drupal\menu_ui;
 
 use Drupal\Core\Form\ConfigFormBase;
 
@@ -25,13 +25,13 @@ public function getFormId() {
    * Implements \Drupal\Core\Form\FormInterface::buildForm().
    */
   public function buildForm(array $form, array &$form_state) {
-    $config = $this->configFactory->get('menu.settings');
+    $config = $this->configFactory->get('menu_ui.settings');
     $form['intro'] = array(
       '#type' => 'item',
       '#markup' => t('The menu module allows on-the-fly creation of menu links in the content authoring forms. To configure these settings for a particular content type, visit the <a href="@content-types">Content types</a> page, click the <em>edit</em> link for the content type, and go to the <em>Menu settings</em> section.', array('@content-types' => url('admin/structure/types'))),
     );
 
-    $menu_options = menu_get_menus();
+    $menu_options = menu_ui_get_menus();
 
     $main = $config->get('main_links');
     $form['menu_main_links_source'] = array(
@@ -61,7 +61,7 @@ public function buildForm(array $form, array &$form_state) {
    * Implements \Drupal\Core\Form\FormInterface::submitForm().
    */
   public function submitForm(array &$form, array &$form_state) {
-    $this->configFactory->get('menu.settings')
+    $this->configFactory->get('menu_ui.settings')
       ->set('main_links', $form_state['values']['menu_main_links_source'])
       ->set('secondary_links', $form_state['values']['menu_secondary_links_source'])
       ->save();
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuCacheTagsTest.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuCacheTagsTest.php
similarity index 97%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuCacheTagsTest.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuCacheTagsTest.php
index fec45d043bfbf07db71b2bd80df558f31d62f0ee..f2ef39d513f02ff0db9f4d14ee9361d11c452a1e 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuCacheTagsTest.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuCacheTagsTest.php
@@ -5,7 +5,7 @@
  * Contains \Drupal\menu\Tests\MenuCacheTagsTest.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\system\Tests\Cache\PageCacheTagsTestBase;
 
@@ -17,7 +17,7 @@ class MenuCacheTagsTest extends PageCacheTagsTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = array('menu', 'block', 'test_page_test');
+  public static $modules = array('menu_ui', 'block', 'test_page_test');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuLanguageTest.php
similarity index 97%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuLanguageTest.php
index 9e9af494025a77076dabb49a073c71eec499196a..73374aa4b784708e0568385f8d85a7f1c82f5144 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuLanguageTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Tests for menu language settings.
+ * Tests for menu_ui language settings.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Language\Language;
@@ -174,7 +174,7 @@ function testMenuLanguageRemovedEnglish() {
     $this->drupalPostForm('admin/structure/menu/add', $edit, t('Save'));
 
     // Check that the language settings were saved.
-    $menu = menu_load($menu_name);
+    $menu = menu_ui_load($menu_name);
     $this->assertEqual($menu->langcode, 'en');
 
     // Remove English language. To do that another language has to be set as
@@ -186,7 +186,7 @@ function testMenuLanguageRemovedEnglish() {
 
     // Save the menu again and check if the language is still the same.
     $this->drupalPostForm("admin/structure/menu/manage/$menu_name", array(), t('Save'));
-    $menu = menu_load($menu_name);
+    $menu = menu_ui_load($menu_name);
     $this->assertEqual($menu->langcode, 'en');
   }
 
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuNodeTest.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuNodeTest.php
similarity index 97%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuNodeTest.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuNodeTest.php
index d8fdea860184a5aae9c049a3678374661245bca2..9c1c67ee675cb1647988e06e44eee970f363a59b 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuNodeTest.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuNodeTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\menu\Tests\MenuNodeTest.
+ * Definition of Drupal\menu_ui\Tests\MenuNodeTest.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class MenuNodeTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('menu', 'test_page_test', 'node');
+  public static $modules = array('menu_ui', 'test_page_test', 'node');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuTest.php
similarity index 98%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuTest.php
index f984aa74c2991150067888b77b0501419dde5471..4ed747e1a2d8b3b9f6a153b9a4fa369ce73a6393 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuTest.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\menu\Tests\MenuTest.
+ * Definition of Drupal\menu_ui\Tests\MenuTest.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\Component\Utility\Json;
 
@@ -199,7 +199,7 @@ function addCustomMenu() {
 
     // Enable the block.
     $this->drupalPlaceBlock('system_menu_block:' . $menu_name);
-    return menu_load($menu_name);
+    return menu_ui_load($menu_name);
   }
 
   /**
@@ -216,7 +216,7 @@ function deleteCustomMenu() {
     $this->drupalPostForm("admin/structure/menu/manage/$menu_name/delete", array(), t('Delete'));
     $this->assertResponse(200);
     $this->assertRaw(t('The custom menu %title has been deleted.', array('%title' => $label)), 'Custom menu was deleted');
-    $this->assertFalse(menu_load($menu_name), 'Custom menu was deleted');
+    $this->assertFalse(menu_ui_load($menu_name), 'Custom menu was deleted');
     // Test if all menu links associated to the menu were removed from database.
     $result = entity_load_multiple_by_properties('menu_link', array('menu_name' => $menu_name));
     $this->assertFalse($result, 'All menu links associated to the custom menu were deleted.');
@@ -477,7 +477,7 @@ public function testBlockContextualLinks() {
     $response =  $this->drupalPost('contextual/render', 'application/json', $post, array('query' => array('destination' => 'test-page')));
     $this->assertResponse(200);
     $json = Json::decode($response);
-    $this->assertIdentical($json[$id], '<ul class="contextual-links"><li class="block-configure"><a href="' . base_path() . 'admin/structure/block/manage/' . $block->id() . '">Configure block</a></li><li class="menu-edit"><a href="' . base_path() . 'admin/structure/menu/manage/tools">Edit menu</a></li></ul>');
+    $this->assertIdentical($json[$id], '<ul class="contextual-links"><li class="block-configure"><a href="' . base_path() . 'admin/structure/block/manage/' . $block->id() . '">Configure block</a></li><li class="menu-ui-edit"><a href="' . base_path() . 'admin/structure/menu/manage/tools">Edit menu</a></li></ul>');
   }
 
   /**
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuUninstallTest.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuUninstallTest.php
similarity index 77%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuUninstallTest.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuUninstallTest.php
index 6815f025b9ba10a5252991c1ea3f10fde45db642..ed92f287f82156143aafa81e4cfef735575dd44a 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuUninstallTest.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuUninstallTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Tests\MenuUninstallTest.
+ * Contains \Drupal\menu_ui\Tests\MenuUninstallTest.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class MenuUninstallTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('menu');
+  public static $modules = array('menu_ui');
 
   public static function getInfo() {
     return array(
@@ -33,7 +33,7 @@ public static function getInfo() {
    * Tests Menu uninstall.
    */
   public function testMenuUninstall() {
-    \Drupal::moduleHandler()->uninstall(array('menu'));
+    \Drupal::moduleHandler()->uninstall(array('menu_ui'));
 
     $this->assertTrue(entity_load('menu', 'admin', TRUE), 'The \'admin\' menu still exists after uninstalling menu module.');
   }
diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuWebTestBase.php b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuWebTestBase.php
similarity index 87%
rename from core/modules/menu/lib/Drupal/menu/Tests/MenuWebTestBase.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuWebTestBase.php
index e1c21a09b9bbbb1070fc093d2aa25ee729744df8..a8dda4b93ac51f0ca725f3409b613a8c97ce485d 100644
--- a/core/modules/menu/lib/Drupal/menu/Tests/MenuWebTestBase.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/Tests/MenuWebTestBase.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Tests\MenuWebTestBase.
+ * Contains \Drupal\menu_ui\Tests\MenuWebTestBase.
  */
 
-namespace Drupal\menu\Tests;
+namespace Drupal\menu_ui\Tests;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class MenuWebTestBase extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('menu');
+  public static $modules = array('menu_ui');
 
   /**
    * Fetchs the menu item from the database and compares it to expected item.
diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu_ui/menu_ui.admin.inc
similarity index 100%
rename from core/modules/menu/menu.admin.inc
rename to core/modules/menu_ui/menu_ui.admin.inc
diff --git a/core/modules/menu/menu.admin.js b/core/modules/menu_ui/menu_ui.admin.js
similarity index 89%
rename from core/modules/menu/menu.admin.js
rename to core/modules/menu_ui/menu_ui.admin.js
index 50b3999ccd63eb69071e51bafb476dbbef9d8f2d..4a04ab0a878c3598fbcc5c9b7b78942106cf9be0 100644
--- a/core/modules/menu/menu.admin.js
+++ b/core/modules/menu_ui/menu_ui.admin.js
@@ -2,16 +2,16 @@
 
   "use strict";
 
-  Drupal.behaviors.menuChangeParentItems = {
+  Drupal.behaviors.menuUiChangeParentItems = {
     attach: function (context, settings) {
       var $menu = $('#edit-menu');
       $menu.once('menu-parent', function () {
         // Update the list of available parent menu items to match the initial
         // available menus.
-        Drupal.menuUpdateParentList();
+        Drupal.menuUiUpdateParentList();
 
         // Update list of available parent menu items.
-        $menu.on('change', 'input', Drupal.menuUpdateParentList);
+        $menu.on('change', 'input', Drupal.menuUiUpdateParentList);
       });
     }
   };
@@ -19,7 +19,7 @@
   /**
    * Function to set the options of the menu parent item dropdown.
    */
-  Drupal.menuUpdateParentList = function () {
+  Drupal.menuUiUpdateParentList = function () {
     var $menu = $('#edit-menu');
     var values = [];
 
diff --git a/core/modules/menu/menu.api.php b/core/modules/menu_ui/menu_ui.api.php
similarity index 100%
rename from core/modules/menu/menu.api.php
rename to core/modules/menu_ui/menu_ui.api.php
diff --git a/core/modules/menu_ui/menu_ui.contextual_links.yml b/core/modules/menu_ui/menu_ui.contextual_links.yml
new file mode 100644
index 0000000000000000000000000000000000000000..22e3a4e6feb89324cfee89b479078ce3bb07c0ed
--- /dev/null
+++ b/core/modules/menu_ui/menu_ui.contextual_links.yml
@@ -0,0 +1,4 @@
+menu_ui_edit:
+  title: 'Edit menu'
+  route_name: 'menu_ui.menu_edit'
+  group: menu
diff --git a/core/modules/menu/menu.info.yml b/core/modules/menu_ui/menu_ui.info.yml
similarity index 77%
rename from core/modules/menu/menu.info.yml
rename to core/modules/menu_ui/menu_ui.info.yml
index b163994a25ccbc15d4e7cd677a78241c583dd1e3..c0fba5031a9449c42dbfbd7bbf19a644ada16b8d 100644
--- a/core/modules/menu/menu.info.yml
+++ b/core/modules/menu_ui/menu_ui.info.yml
@@ -1,9 +1,9 @@
-name: Menu
+name: Menu Ui
 type: module
 description: 'Allows administrators to customize the site navigation menu.'
 package: Core
 version: VERSION
 core: 8.x
-configure: menu.overview_page
+configure: menu_ui.overview_page
 dependencies:
   - menu_link
diff --git a/core/modules/menu/menu.install b/core/modules/menu_ui/menu_ui.install
similarity index 86%
rename from core/modules/menu/menu.install
rename to core/modules/menu_ui/menu_ui.install
index 037fc62531174982df4780c8463de9c69ca094a0..0e580b446638289f97d68b009a4d668bc67531c5 100644
--- a/core/modules/menu/menu.install
+++ b/core/modules/menu_ui/menu_ui.install
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Install, update and uninstall functions for the menu module.
+ * Install, update and uninstall functions for the menu_ui module.
  */
 
 use Drupal\Component\Uuid\Uuid;
@@ -10,7 +10,7 @@
 /**
  * Implements hook_install().
  */
-function menu_install() {
+function menu_ui_install() {
   // Rebuild all the menu data.
   // @todo - remove this when we understand why removing it breaks the
   // standard install profile, possibly need to be handled in
@@ -31,6 +31,6 @@ function menu_install() {
 /**
  * Implements hook_uninstall().
  */
-function menu_uninstall() {
+function menu_ui_uninstall() {
   \Drupal::service('router.builder')->setRebuildNeeded();
 }
diff --git a/core/modules/menu/menu.js b/core/modules/menu_ui/menu_ui.js
similarity index 96%
rename from core/modules/menu/menu.js
rename to core/modules/menu_ui/menu_ui.js
index 589e69e64a5cf8a9922fd6f760e22de8b2d63f41..1f830d2d08cecb8b87fd14067d3aef4ba5df615c 100644
--- a/core/modules/menu/menu.js
+++ b/core/modules/menu_ui/menu_ui.js
@@ -2,7 +2,7 @@
 
   "use strict";
 
-  Drupal.behaviors.menuDetailsSummaries = {
+  Drupal.behaviors.menuUiDetailsSummaries = {
     attach: function (context) {
       $(context).find('.menu-link-form').drupalSetSummary(function (context) {
         var $context = $(context);
@@ -19,7 +19,7 @@
   /**
    * Automatically fill in a menu link title, if possible.
    */
-  Drupal.behaviors.menuLinkAutomaticTitle = {
+  Drupal.behaviors.menuUiLinkAutomaticTitle = {
     attach: function (context) {
       var $context = $(context);
       $context.find('.menu-link-form').each(function () {
diff --git a/core/modules/menu/menu.libraries.yml b/core/modules/menu_ui/menu_ui.libraries.yml
similarity index 68%
rename from core/modules/menu/menu.libraries.yml
rename to core/modules/menu_ui/menu_ui.libraries.yml
index 56cf43728a2f5e23ea48e4d32bf895b37b7be377..a4e381c518fe4e8bc184bc75d9b3504f28e5e3d7 100644
--- a/core/modules/menu/menu.libraries.yml
+++ b/core/modules/menu_ui/menu_ui.libraries.yml
@@ -1,16 +1,16 @@
-drupal.menu:
+drupal.menu_ui:
   version: VERSION
   js:
-    menu.js: {}
+    menu_ui.js: {}
   dependencies:
     - core/jquery
     - core/drupal
     - core/drupal.form
 
-drupal.menu.admin:
+drupal.menu_ui.admin:
   version: VERSION
   js:
-    menu.admin.js: {}
+    menu_ui.admin.js: {}
   dependencies:
     - core/jquery
     - core/drupal
diff --git a/core/modules/menu_ui/menu_ui.local_actions.yml b/core/modules/menu_ui/menu_ui.local_actions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..08348211f130ddc3fce6f1a42886ebb52ce6b844
--- /dev/null
+++ b/core/modules/menu_ui/menu_ui.local_actions.yml
@@ -0,0 +1,11 @@
+menu_ui_link_add:
+  route_name: menu_ui.link_add
+  title: 'Add link'
+  appears_on:
+    - menu_ui.menu_edit
+
+menu_ui.menu_add:
+  route_name: menu_ui.menu_add
+  title: 'Add menu'
+  appears_on:
+    - menu_ui.overview_page
diff --git a/core/modules/menu_ui/menu_ui.local_tasks.yml b/core/modules/menu_ui/menu_ui.local_tasks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..92aadeb0b67187105435c92e6fc487ba592befcf
--- /dev/null
+++ b/core/modules/menu_ui/menu_ui.local_tasks.yml
@@ -0,0 +1,15 @@
+menu_ui.menu_edit:
+  title: 'Edit menu'
+  route_name: menu_ui.menu_edit
+  base_route: menu_ui.menu_edit
+
+menu_ui.overview_page:
+  title: 'List'
+  route_name: menu_ui.overview_page
+  base_route: menu_ui.overview_page
+
+menu_ui.settings:
+  title: 'Settings'
+  route_name: menu_ui.settings
+  base_route: menu_ui.overview_page
+  weight: 100
diff --git a/core/modules/menu/menu.menu_links.yml b/core/modules/menu_ui/menu_ui.menu_links.yml
similarity index 72%
rename from core/modules/menu/menu.menu_links.yml
rename to core/modules/menu_ui/menu_ui.menu_links.yml
index c3ec08a1f1f2cb029d3b28c8123caa777464a176..03023356db239f89eb2e2e2e5501dfab78b4e4a4 100644
--- a/core/modules/menu/menu.menu_links.yml
+++ b/core/modules/menu_ui/menu_ui.menu_links.yml
@@ -1,5 +1,5 @@
-menu.overview_page:
+menu_ui.overview_page:
   title: Menus
   description: 'Add new menus to your site, edit existing menus, and rename and reorganize menu links.'
-  route_name: menu.overview_page
+  route_name: menu_ui.overview_page
   parent: system.admin_structure
diff --git a/core/modules/menu/menu.module b/core/modules/menu_ui/menu_ui.module
similarity index 84%
rename from core/modules/menu/menu.module
rename to core/modules/menu_ui/menu_ui.module
index 47b58130ee1ea0c64f0ea0009e6a684c2adf9e31..3bd9b9fa18164b9cb3760a20dae1b3f6068e90b8 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -30,16 +30,16 @@
 /**
  * Implements hook_help().
  */
-function menu_help($path, $arg) {
+function menu_ui_help($path, $arg) {
   switch ($path) {
-    case 'admin/help#menu':
+    case 'admin/help#menu_ui':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
       $output .= '<p>' . t('The Menu module provides an interface for managing menus. A menu is a hierarchical collection of links, which can be within or external to the site, generally used for navigation. For more information, see the <a href="!menu">online documentation for the Menu module</a>.', array('!menu' => 'https://drupal.org/documentation/modules/menu/')) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Managing menus') . '</dt>';
-      $output .= '<dd>' . t('Users with the <em>Administer menus and menu items</em> permission can add, edit, and delete custom menus on the <a href="!menu">Menus page</a>. Custom menus can be special site menus, menus of external links, or any combination of internal and external links. You may create an unlimited number of additional menus, each of which will automatically have an associated block (if you have the <a href="!block_help">Block module</a> installed). By selecting <em>Edit menu</em>, you can add, edit, or delete links for a given menu. The links listing page provides a drag-and-drop interface for controlling the order of links, and creating a hierarchy within the menu.', array('!block_help' => \Drupal::url('help.page', array('name' => 'block')), '!menu' => \Drupal::url('menu.overview_page'))) . '</dd>';
+      $output .= '<dd>' . t('Users with the <em>Administer menus and menu items</em> permission can add, edit, and delete custom menus on the <a href="!menu">Menus page</a>. Custom menus can be special site menus, menus of external links, or any combination of internal and external links. You may create an unlimited number of additional menus, each of which will automatically have an associated block (if you have the <a href="!block_help">Block module</a> installed). By selecting <em>Edit menu</em>, you can add, edit, or delete links for a given menu. The links listing page provides a drag-and-drop interface for controlling the order of links, and creating a hierarchy within the menu.', array('!block_help' => \Drupal::url('help.page', array('name' => 'block')), '!menu' => \Drupal::url('menu_ui.overview_page'))) . '</dd>';
       $output .= '<dt>' . t('Displaying menus') . '</dt>';
       $output .= '<dd>' . t('If you have the Block module enabled, then each menu that you create is rendered in a block that you enable and position on the <a href="!blocks">Block layout page</a>. In some <a href="!themes">themes</a>, the main menu and possibly the secondary menu will be output automatically; you may be able to disable this behavior on the <a href="!themes">theme\'s settings page</a>.', array('!blocks' => (\Drupal::moduleHandler()->moduleExists('block')) ? \Drupal::url('block.admin_display') : '#', '!themes' => \Drupal::url('system.themes_page'), '!theme_settings' => \Drupal::url('system.theme_settings'))) . '</dd>';
       $output .= '</dl>';
@@ -56,7 +56,7 @@ function menu_help($path, $arg) {
 /**
  * Implements hook_permission().
  */
-function menu_permission() {
+function menu_ui_permission() {
   return array(
     'administer menu' => array(
       'title' => t('Administer menus and menu items'),
@@ -67,27 +67,27 @@ function menu_permission() {
 /**
  * Implements hook_entity_type_build().
  */
-function menu_entity_type_build(array &$entity_types) {
+function menu_ui_entity_type_build(array &$entity_types) {
   /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
   $entity_types['menu']
-    ->setFormClass('add', 'Drupal\menu\MenuFormController')
-    ->setFormClass('edit', 'Drupal\menu\MenuFormController')
-    ->setFormClass('delete', 'Drupal\menu\Form\MenuDeleteForm')
-    ->setListBuilderClass('Drupal\menu\MenuListBuilder')
-    ->setLinkTemplate('add-form', 'menu.link_add')
-    ->setLinkTemplate('delete-form', 'menu.delete_menu')
-    ->setLinkTemplate('edit-form', 'menu.menu_edit');
+    ->setFormClass('add', 'Drupal\menu_ui\MenuFormController')
+    ->setFormClass('edit', 'Drupal\menu_ui\MenuFormController')
+    ->setFormClass('delete', 'Drupal\menu_ui\Form\MenuDeleteForm')
+    ->setListBuilderClass('Drupal\menu_ui\MenuListBuilder')
+    ->setLinkTemplate('add-form', 'menu_ui.link_add')
+    ->setLinkTemplate('delete-form', 'menu_ui.delete_menu')
+    ->setLinkTemplate('edit-form', 'menu_ui.menu_edit');
 
   $entity_types['menu_link']
-    ->setFormClass('delete', 'Drupal\menu\Form\MenuLinkDeleteForm')
-    ->setFormClass('reset', 'Drupal\menu\Form\MenuLinkResetForm')
-    ->setLinkTemplate('delete-form', 'menu.link_delete');
+    ->setFormClass('delete', 'Drupal\menu_ui\Form\MenuLinkDeleteForm')
+    ->setFormClass('reset', 'Drupal\menu_ui\Form\MenuLinkResetForm')
+    ->setLinkTemplate('delete-form', 'menu_ui.link_delete');
 }
 
 /**
  * Implements hook_entity_bundle_info().
  */
-function menu_entity_bundle_info() {
+function menu_ui_entity_bundle_info() {
   $bundles = array();
   $config_names = \Drupal::configFactory()->listAll('system.menu.');
   foreach ($config_names as $config_name) {
@@ -103,10 +103,10 @@ function menu_entity_bundle_info() {
 /**
  * Implements hook_theme().
  */
-function menu_theme() {
+function menu_ui_theme() {
   return array(
     'menu_overview_form' => array(
-      'file' => 'menu.admin.inc',
+      'file' => 'menu_ui.admin.inc',
       'render element' => 'form',
     ),
   );
@@ -120,14 +120,14 @@ function menu_theme() {
  * @return
  *   Array defining the custom menu, or NULL if the menu doesn't exist.
  */
-function menu_load($menu_name) {
+function menu_ui_load($menu_name) {
   return entity_load('menu', $menu_name);
 }
 
 /**
  * Implements hook_menu_insert()
  */
-function menu_menu_insert(Menu $menu) {
+function menu_ui_menu_insert(Menu $menu) {
   menu_cache_clear_all();
   // Invalidate the block cache to update menu-based derivatives.
   if (\Drupal::moduleHandler()->moduleExists('block')) {
@@ -143,7 +143,7 @@ function menu_menu_insert(Menu $menu) {
   // See menu_set_active_menu_names().
   $config = \Drupal::config('system.menu');
 
-  $active_menus = $config->get('active_menus_default') ?: array_keys(menu_get_menus());
+  $active_menus = $config->get('active_menus_default') ?: array_keys(menu_ui_get_menus());
   if (!in_array($menu->id(), $active_menus)) {
     $active_menus[] = $menu->id();
     $config
@@ -155,7 +155,7 @@ function menu_menu_insert(Menu $menu) {
 /**
  * Implements hook_menu_update().
  */
-function menu_menu_update(Menu $menu) {
+function menu_ui_menu_update(Menu $menu) {
   menu_cache_clear_all();
   // Invalidate the block cache to update menu-based derivatives.
   if (\Drupal::moduleHandler()->moduleExists('block')) {
@@ -166,13 +166,13 @@ function menu_menu_update(Menu $menu) {
 /**
  * Implements hook_menu_predelete().
  */
-function menu_menu_predelete(Menu $menu) {
+function menu_ui_menu_predelete(Menu $menu) {
   // Delete all links from the menu.
   menu_delete_links($menu->id());
 
   // Remove menu from active menus variable.
   $config = \Drupal::config('system.menu');
-  $active_menus = $config->get('active_menus_default') ?: array_keys(menu_get_menus());
+  $active_menus = $config->get('active_menus_default') ?: array_keys(menu_ui_get_menus());
   if (in_array($menu->id(), $active_menus)) {
     $active_menus = array_diff($active_menus, array($menu->id()));
     // Prevent the gap left by the removed menu from causing array indices to
@@ -187,7 +187,7 @@ function menu_menu_predelete(Menu $menu) {
 /**
  * Implements hook_menu_delete().
  */
-function menu_menu_delete(Menu $menu) {
+function menu_ui_menu_delete(Menu $menu) {
   menu_cache_clear_all();
 
   // Invalidate the block cache to update menu-based derivatives.
@@ -201,7 +201,7 @@ function menu_menu_delete(Menu $menu) {
  * menu link.
  *
  * @param array $menus
- *   An array of menu names and titles, such as from menu_get_menus().
+ *   An array of menu names and titles, such as from menu_ui_get_menus().
  * @param \Drupal\menu_link\Entity\MenuLink $menu_link
  *   The menu link for which to generate a list of parents.
  *   If $menu_link->id() == 0 then the complete tree is returned.
@@ -216,12 +216,12 @@ function menu_menu_delete(Menu $menu) {
  * @todo This has to be turned into a #process form element callback. The
  *   'override_parent_selector' variable is entirely superfluous.
  */
-function menu_parent_options(array $menus, MenuLink $menu_link = NULL, $type = NULL) {
+function menu_ui_parent_options(array $menus, MenuLink $menu_link = NULL, $type = NULL) {
   // The menu_links table can be practically any size and we need a way to
   // allow contrib modules to provide more scalable pattern choosers.
   // hook_form_alter is too late in itself because all the possible parents are
   // retrieved here, unless override_parent_selector is set to TRUE.
-  if (\Drupal::config('menu.settings')->get('override_parent_selector')) {
+  if (\Drupal::config('menu_ui.settings')->get('override_parent_selector')) {
     return array();
   }
 
@@ -242,19 +242,19 @@ function menu_parent_options(array $menus, MenuLink $menu_link = NULL, $type = N
     }
   }
 
-  return _menu_get_options($menus, $available_menus, $menu_link);
+  return _menu_ui_get_options($menus, $available_menus, $menu_link);
 }
 
 /**
  * Helper function to get the items of the given menu.
  */
-function _menu_get_options($menus, $available_menus, $item) {
+function _menu_ui_get_options($menus, $available_menus, $item) {
   // If the item has children, there is an added limit to the depth of valid parents.
   if (isset($item['parent_depth_limit'])) {
     $limit = $item['parent_depth_limit'];
   }
   else {
-    $limit = _menu_parent_depth_limit($item);
+    $limit = _menu_ui_parent_depth_limit($item);
   }
 
   /** @var \Drupal\menu_link\MenuTreeInterface $menu_tree */
@@ -265,16 +265,16 @@ function _menu_get_options($menus, $available_menus, $item) {
     if (isset($available_menus[$menu_name])) {
       $tree = $menu_tree->buildAllData($menu_name, NULL);
       $options[$menu_name . ':0'] = '<' . $title . '>';
-      _menu_parents_recurse($tree, $menu_name, '--', $options, $item['mlid'], $limit);
+      _menu_ui_parents_recurse($tree, $menu_name, '--', $options, $item['mlid'], $limit);
     }
   }
   return $options;
 }
 
 /**
- * Recursive helper function for menu_parent_options().
+ * Recursive helper function for menu_ui_parent_options().
  */
-function _menu_parents_recurse($tree, $menu_name, $indent, &$options, $exclude, $depth_limit) {
+function _menu_ui_parents_recurse($tree, $menu_name, $indent, &$options, $exclude, $depth_limit) {
   foreach ($tree as $data) {
     if ($data['link']['depth'] > $depth_limit) {
       // Don't iterate through any links on this level.
@@ -287,7 +287,7 @@ function _menu_parents_recurse($tree, $menu_name, $indent, &$options, $exclude,
       }
       $options[$menu_name . ':' . $data['link']['mlid']] = $title;
       if ($data['below']) {
-        _menu_parents_recurse($data['below'], $menu_name, $indent . '--', $options, $exclude, $depth_limit);
+        _menu_ui_parents_recurse($data['below'], $menu_name, $indent . '--', $options, $exclude, $depth_limit);
       }
     }
   }
@@ -296,7 +296,7 @@ function _menu_parents_recurse($tree, $menu_name, $indent, &$options, $exclude,
 /**
  * Implements hook_block_view_BASE_BLOCK_ID_alter() for 'system_menu_block'.
  */
-function menu_block_view_system_menu_block_alter(array &$build, BlockPluginInterface $block) {
+function menu_ui_block_view_system_menu_block_alter(array &$build, BlockPluginInterface $block) {
   // Add contextual links for system menu blocks.
   $menus = menu_list_system_menus();
   $menu_name = $block->getDerivativeId();
@@ -312,21 +312,21 @@ function menu_block_view_system_menu_block_alter(array &$build, BlockPluginInter
 /**
  * Implements hook_node_insert().
  */
-function menu_node_insert(EntityInterface $node) {
-  menu_node_save($node);
+function menu_ui_node_insert(EntityInterface $node) {
+  menu_ui_node_save($node);
 }
 
 /**
  * Implements hook_node_update().
  */
-function menu_node_update(EntityInterface $node) {
-  menu_node_save($node);
+function menu_ui_node_update(EntityInterface $node) {
+  menu_ui_node_save($node);
 }
 
 /**
  * Implements hook_node_type_insert().
  */
-function menu_node_type_insert(NodeTypeInterface $type) {
+function menu_ui_node_type_insert(NodeTypeInterface $type) {
   if ($type->isSyncing()) {
     return;
   }
@@ -339,7 +339,7 @@ function menu_node_type_insert(NodeTypeInterface $type) {
 /**
  * Implements hook_node_type_delete().
  */
-function menu_node_type_delete(NodeTypeInterface $type) {
+function menu_ui_node_type_delete(NodeTypeInterface $type) {
   if ($type->isSyncing()) {
     return;
   }
@@ -349,7 +349,7 @@ function menu_node_type_delete(NodeTypeInterface $type) {
 /**
  * Helper for hook_node_insert() and hook_node_update().
  */
-function menu_node_save(EntityInterface $node) {
+function menu_ui_node_save(EntityInterface $node) {
   if (isset($node->menu)) {
     $link = &$node->menu;
     if (empty($link['enabled'])) {
@@ -378,7 +378,7 @@ function menu_node_save(EntityInterface $node) {
 /**
  * Implements hook_node_predelete().
  */
-function menu_node_predelete(EntityInterface $node) {
+function menu_ui_node_predelete(EntityInterface $node) {
   // Delete all menu module links that point to this node.
   $query = \Drupal::entityQuery('menu_link')
     ->condition('link_path', 'node/' . $node->id())
@@ -393,7 +393,7 @@ function menu_node_predelete(EntityInterface $node) {
 /**
  * Implements hook_node_prepare_form().
  */
-function menu_node_prepare_form(NodeInterface $node, $operation, array &$form_state) {
+function menu_ui_node_prepare_form(NodeInterface $node, $operation, array &$form_state) {
   if (empty($node->menu)) {
     // Prepare the node for the edit form so that $node->menu always exists.
     $node_type_config = \Drupal::config('menu.entity.node.' . $node->getType());
@@ -407,7 +407,7 @@ function menu_node_prepare_form(NodeInterface $node, $operation, array &$form_st
         $query = \Drupal::entityQuery('menu_link')
           ->condition('link_path', 'node/' . $node->id())
           ->condition('menu_name', $menu_name)
-          ->condition('module', 'menu')
+          ->condition('module', 'menu_ui')
           ->sort('mlid', 'ASC')
           ->range(0, 1);
         $result = $query->execute();
@@ -419,7 +419,7 @@ function menu_node_prepare_form(NodeInterface $node, $operation, array &$form_st
         $query = \Drupal::entityQuery('menu_link')
           ->condition('link_path', 'node/' . $node->id())
           ->condition('menu_name', array_values($type_menus), 'IN')
-          ->condition('module', 'menu')
+          ->condition('module', 'menu_ui')
           ->sort('mlid', 'ASC')
           ->range(0, 1);
         $result = $query->execute();
@@ -443,14 +443,14 @@ function menu_node_prepare_form(NodeInterface $node, $operation, array &$form_st
   }
   // Find the depth limit for the parent select.
   if (!isset($node->menu['parent_depth_limit'])) {
-    $node->menu['parent_depth_limit'] = _menu_parent_depth_limit($node->menu);
+    $node->menu['parent_depth_limit'] = _menu_ui_parent_depth_limit($node->menu);
   }
 }
 
 /**
  * Find the depth limit for items in the parent select.
  */
-function _menu_parent_depth_limit($item) {
+function _menu_ui_parent_depth_limit($item) {
   return MENU_MAX_DEPTH - 1 - (($item['mlid'] && $item['has_children']) ? entity_get_controller('menu_link')->findChildrenRelativeDepth($item) : 0);
 }
 
@@ -459,15 +459,15 @@ function _menu_parent_depth_limit($item) {
  *
  * Adds menu item fields to the node form.
  *
- * @see menu_node_submit()
+ * @see menu_ui_node_submit()
  */
-function menu_form_node_form_alter(&$form, $form_state) {
+function menu_ui_form_node_form_alter(&$form, $form_state) {
   // Generate a list of possible parents (not including this link or descendants).
   // @todo This must be handled in a #process handler.
   $node = $form_state['controller']->getEntity();
   $link = $node->menu;
   $type = $node->getType();
-  $options = menu_parent_options(menu_get_menus(), $link, $type);
+  $options = menu_ui_parent_options(menu_ui_get_menus(), $link, $type);
   // If no possible parent menu items were found, there is nothing to display.
   if (empty($options)) {
     return;
@@ -560,9 +560,9 @@ function menu_form_node_form_alter(&$form, $form_state) {
 /**
  * Implements hook_node_submit().
  *
- * @see menu_form_node_form_alter()
+ * @see menu_ui_form_node_form_alter()
  */
-function menu_node_submit(EntityInterface $node, $form, $form_state) {
+function menu_ui_node_submit(EntityInterface $node, $form, $form_state) {
   if (!empty($form_state['values']['menu'])) {
     $node->menu = entity_create('menu_link', $form_state['values']['menu']);
     // Decompose the selected menu parent option into 'menu_name' and 'plid', if
@@ -579,10 +579,10 @@ function menu_node_submit(EntityInterface $node, $form, $form_state) {
  * Adds menu options to the node type form.
  *
  * @see NodeTypeFormController::form().
- * @see menu_form_node_type_form_submit().
+ * @see menu_ui_form_node_type_form_submit().
  */
-function menu_form_node_type_form_alter(&$form, $form_state) {
-  $menu_options = menu_get_menus();
+function menu_ui_form_node_type_form_alter(&$form, $form_state) {
+  $menu_options = menu_ui_get_menus();
   $type = $form_state['controller']->getEntity();
   if ($type->id()) {
     $config_values = \Drupal::config('menu.entity.node.' . $type->id())->get();
@@ -611,9 +611,9 @@ function menu_form_node_type_form_alter(&$form, $form_state) {
   // To avoid an 'illegal option' error after saving the form we have to load
   // all available menu items.
   // Otherwise it is not possible to dynamically add options to the list.
-  // @todo Convert menu_parent_options() into a #process callback.
+  // @todo Convert menu_ui_parent_options() into a #process callback.
   $menu_link = entity_create('menu_link', array('mlid' => 0));
-  $options = menu_parent_options(menu_get_menus(), $menu_link);
+  $options = menu_ui_parent_options(menu_ui_get_menus(), $menu_link);
   $form['menu']['menu_parent'] = array(
     '#type' => 'select',
     '#title' => t('Default parent item'),
@@ -623,15 +623,15 @@ function menu_form_node_type_form_alter(&$form, $form_state) {
     '#attributes' => array('class' => array('menu-title-select')),
   );
 
-  $form['actions']['submit']['#submit'][] = 'menu_form_node_type_form_submit';
+  $form['actions']['submit']['#submit'][] = 'menu_ui_form_node_type_form_submit';
 }
 
 /**
  * Submit handler for forms with menu options.
  *
- * @see menu_form_node_type_form_alter().
+ * @see menu_ui_form_node_type_form_alter().
  */
-function menu_form_node_type_form_submit(&$form, $form_state) {
+function menu_ui_form_node_type_form_submit(&$form, $form_state) {
   $type = $form_state['controller']->getEntity();
   \Drupal::config('menu.entity.node.' . $type->id())
     ->set('available_menus', array_values(array_filter($form_state['values']['menu_options'])))
@@ -649,7 +649,7 @@ function menu_form_node_type_form_submit(&$form, $form_state) {
  *   An array with the machine-readable names as the keys, and human-readable
  *   titles as the values.
  */
-function menu_get_menus($all = TRUE) {
+function menu_ui_get_menus($all = TRUE) {
   if ($custom_menus = entity_load_multiple('menu')) {
     if (!$all) {
       $custom_menus = array_diff_key($custom_menus, menu_list_system_menus());
@@ -665,8 +665,8 @@ function menu_get_menus($all = TRUE) {
 /**
  * Implements hook_preprocess_HOOK() for block templates.
  */
-function menu_preprocess_block(&$variables) {
-  if ($variables['configuration']['provider'] == 'menu') {
+function menu_ui_preprocess_block(&$variables) {
+  if ($variables['configuration']['provider'] == 'menu_ui') {
     $variables['attributes']['role'] = 'navigation';
   }
 }
diff --git a/core/modules/menu/menu.routing.yml b/core/modules/menu_ui/menu_ui.routing.yml
similarity index 76%
rename from core/modules/menu/menu.routing.yml
rename to core/modules/menu_ui/menu_ui.routing.yml
index f3f6e4bfe106030db107edb9f6d3493fef819480..4be3bbf68076550d409ec4ca3f77485a93d30842 100644
--- a/core/modules/menu/menu.routing.yml
+++ b/core/modules/menu_ui/menu_ui.routing.yml
@@ -1,12 +1,12 @@
-menu.settings:
+menu_ui.settings:
   path: '/admin/structure/menu/settings'
   defaults:
-    _form: 'Drupal\menu\MenuSettingsForm'
+    _form: 'Drupal\menu_ui\MenuSettingsForm'
     _title: 'Menus'
   requirements:
     _permission: 'administer menu'
 
-menu.overview_page:
+menu_ui.overview_page:
   path: '/admin/structure/menu'
   defaults:
     _entity_list: 'menu'
@@ -14,22 +14,22 @@ menu.overview_page:
   requirements:
     _permission: 'administer menu'
 
-menu.parent_options_js:
+menu_ui.parent_options_js:
   path: '/admin/structure/menu/parents'
   defaults:
-    _controller: '\Drupal\menu\Controller\MenuController::getParentOptions'
+    _controller: '\Drupal\menu_ui\Controller\MenuController::getParentOptions'
   requirements:
     _permission: 'administer menu'
 
-menu.link_add:
+menu_ui.link_add:
   path: '/admin/structure/menu/manage/{menu}/add'
   defaults:
-    _content: '\Drupal\menu\Controller\MenuController::addLink'
+    _content: '\Drupal\menu_ui\Controller\MenuController::addLink'
     _title: 'Add menu link'
   requirements:
     _entity_create_access: 'menu_link'
 
-menu.link_edit:
+menu_ui.link_edit:
   path: '/admin/structure/menu/item/{menu_link}/edit'
   defaults:
     _entity_form: 'menu_link'
@@ -37,7 +37,7 @@ menu.link_edit:
   requirements:
     _entity_access: 'menu_link.update'
 
-menu.link_reset:
+menu_ui.link_reset:
   path: '/admin/structure/menu/item/{menu_link}/reset'
   defaults:
     _entity_form: 'menu_link.reset'
@@ -45,7 +45,7 @@ menu.link_reset:
   requirements:
     _entity_access: 'menu_link.reset'
 
-menu.link_delete:
+menu_ui.link_delete:
   path: '/admin/structure/menu/item/{menu_link}/delete'
   defaults:
     _entity_form: 'menu_link.delete'
@@ -53,7 +53,7 @@ menu.link_delete:
   requirements:
     _entity_access: 'menu_link.delete'
 
-menu.menu_add:
+menu_ui.menu_add:
   path: '/admin/structure/menu/add'
   defaults:
     _entity_form: 'menu.add'
@@ -61,15 +61,15 @@ menu.menu_add:
   requirements:
     _entity_create_access: 'menu'
 
-menu.menu_edit:
+menu_ui.menu_edit:
   path: '/admin/structure/menu/manage/{menu}'
   defaults:
     _entity_form: 'menu.edit'
-    _title_callback: '\Drupal\menu\Controller\MenuController::menuTitle'
+    _title_callback: '\Drupal\menu_ui\Controller\MenuController::menuTitle'
   requirements:
     _entity_access: 'menu.update'
 
-menu.delete_menu:
+menu_ui.delete_menu:
   path: '/admin/structure/menu/manage/{menu}/delete'
   defaults:
     _entity_form: 'menu.delete'
diff --git a/core/modules/migrate_drupal/config/migrate.migration.d6_menu_settings.yml b/core/modules/migrate_drupal/config/migrate.migration.d6_menu_settings.yml
index 5c56ea482096f6fa3cc4ac02782f7dcbaa98146a..8b03bbe338ae1798d5df879e5feb916205112dee 100644
--- a/core/modules/migrate_drupal/config/migrate.migration.d6_menu_settings.yml
+++ b/core/modules/migrate_drupal/config/migrate.migration.d6_menu_settings.yml
@@ -11,4 +11,4 @@ process:
     override_parent_selector: menu_override_parent_selector
 destination:
     plugin: config
-    config_name: menu.settings
+    config_name: menu_ui.settings
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6MenuSettings.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6MenuSettings.php
index 298b499df7622094659664f187d0f38557242440..752614a64970cbb0100a4abb7df713fd6321cdcb 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6MenuSettings.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6MenuSettings.php
@@ -8,7 +8,7 @@
 namespace Drupal\migrate_drupal\Tests\Dump;
 
 /**
- * Database dump for testing menu.settings.yml migration.
+ * Database dump for testing menu_ui.settings.yml migration.
  */
 class Drupal6MenuSettings extends Drupal6DumpBase {
 
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateMenuConfigsTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateMenuConfigsTest.php
index 7e09ccbd206bfbc47c9cefc7e68dd0921cc36ff9..7c26613b87d055a34e42d227a8ffef5d3e8b2d83 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateMenuConfigsTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateMenuConfigsTest.php
@@ -20,15 +20,15 @@ class MigrateMenuConfigsTest extends MigrateDrupalTestBase {
    *
    * @var array
    */
-  public static $modules = array('menu');
+  public static $modules = array('menu_ui');
 
   /**
    * {@inheritdoc}
    */
   public static function getInfo() {
     return array(
-      'name'  => 'Migrate variables to menu.settings.yml',
-      'description'  => 'Upgrade variables to menu.settings.yml',
+      'name'  => 'Migrate variables to menu_ui.settings.yml',
+      'description'  => 'Upgrade variables to menu_ui.settings.yml',
       'group' => 'Migrate Drupal',
     );
   }
@@ -51,7 +51,7 @@ public function setUp() {
    * Tests migration of variables for the menu module.
    */
   public function testMenuSettings() {
-    $config = \Drupal::config('menu.settings');
+    $config = \Drupal::config('menu_ui.settings');
     $this->assertIdentical($config->get('main_links'), 'primary-links');
     $this->assertIdentical($config->get('secondary_links'), 'secondary-links');
     $this->assertIdentical($config->get('override_parent_selector'), FALSE);
diff --git a/core/modules/system/lib/Drupal/system/Tests/Cache/PageCacheTagsIntegrationTest.php b/core/modules/system/lib/Drupal/system/Tests/Cache/PageCacheTagsIntegrationTest.php
index f9f76ac291b94c49e496478f2d90aa287f1d6df0..f310b24f13039233dfd6ab19c70b56a08dcdcc34 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Cache/PageCacheTagsIntegrationTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Cache/PageCacheTagsIntegrationTest.php
@@ -15,7 +15,7 @@
  *
  * @see \Drupal\system\Tests\Bootstrap\PageCacheTest
  * @see \Drupal\node\Tests\NodePageCacheTest
- * @see \Drupal\menu\Tests\MenuTest::testMenuBlockPageCacheTags()
+ * @see \Drupal\menu_ui\Tests\MenuTest::testMenuBlockPageCacheTags()
  */
 class PageCacheTagsIntegrationTest extends WebTestBase {
 
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.info.yml b/core/modules/system/tests/modules/menu_test/menu_test.info.yml
index cce904ba44a06e12279a0af1ba8e99de67f9e9c6..c927d5f00b49e60195d2f6b4106fd86437bdb333 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.info.yml
+++ b/core/modules/system/tests/modules/menu_test/menu_test.info.yml
@@ -7,4 +7,4 @@ core: 8.x
 hidden: true
 dependencies:
   - test_page_test
-  - menu
+  - menu_ui
diff --git a/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php b/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
index 01f043e60ba0a6b1fbff11ba73c335285c1ebbbf..74543ee2938756815db291b85d95ff8537d256e6 100644
--- a/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
+++ b/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
@@ -53,7 +53,7 @@ class ToolbarAdminMenuTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'block', 'menu', 'user', 'taxonomy', 'toolbar', 'language', 'test_page_test', 'locale');
+  public static $modules = array('node', 'block', 'menu_ui', 'user', 'taxonomy', 'toolbar', 'language', 'test_page_test', 'locale');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php b/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
index c9dcd302df713abde77cb03b2811ae7129555135..ce936e45f8c2c145a49787721b2d350b8bffd772 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserAccountLinksTests.php
@@ -19,7 +19,7 @@ class UserAccountLinksTests extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('menu', 'block', 'test_page_test');
+  public static $modules = array('menu_ui', 'block', 'test_page_test');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
index 944e0d4b6ad69e6246c0516c95d660d84d077a52..c0b6771b4ed5ffaffff595e8fe6b3453a18d383e 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
@@ -217,11 +217,11 @@ public function buildOptionsForm(&$form, &$form_state) {
         );
 
         // Only display the menu selector if menu module is enabled.
-        if (\Drupal::moduleHandler()->moduleExists('menu')) {
+        if (\Drupal::moduleHandler()->moduleExists('menu_ui')) {
           $form['menu']['name'] = array(
             '#title' => t('Menu'),
             '#type' => 'select',
-            '#options' => menu_get_menus(),
+            '#options' => menu_ui_get_menus(),
             '#default_value' => $menu['name'],
             '#states' => array(
               'visible' => array(
@@ -334,11 +334,11 @@ public function buildOptionsForm(&$form, &$form_state) {
           ),
         );
         // Only display the menu selector if menu module is enabled.
-        if (\Drupal::moduleHandler()->moduleExists('menu')) {
+        if (\Drupal::moduleHandler()->moduleExists('menu_ui')) {
           $form['tab_options']['name'] = array(
             '#title' => t('Menu'),
             '#type' => 'select',
-            '#options' => menu_get_menus(),
+            '#options' => menu_ui_get_menus(),
             '#default_value' => $tab_options['name'],
             '#description' => t('Insert item into an available menu.'),
             '#states' => array(
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php
index 1c15e4fb534e7b4ddc4f9c673a0c34fc774a9d60..fc9950a25bf2d13137df246f38776a438044e3cb 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/wizard/WizardPluginBase.php
@@ -292,8 +292,8 @@ public function buildForm(array $form, array &$form_state) {
       '#prefix' => '<div id="edit-page-link-properties-wrapper">',
       '#suffix' => '</div>',
     );
-    if (\Drupal::moduleHandler()->moduleExists('menu')) {
-      $menu_options = menu_get_menus();
+    if (\Drupal::moduleHandler()->moduleExists('menu_ui')) {
+      $menu_options = menu_ui_get_menus();
     }
     else {
       // These are not yet translated.
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
index 31b1ff2d86b50e62038f73d3faab599b8fb03476..8435589cfe30ba720d45974c71a700e6f6c676fe 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
@@ -59,7 +59,7 @@ public function testDeleteWithNoPath() {
    * Tests the menu and tab option form.
    */
   public function testMenuOptions() {
-    $this->container->get('module_handler')->install(array('menu'));
+    $this->container->get('module_handler')->install(array('menu_ui'));
     $this->drupalGet('admin/structure/views/view/test_view');
 
     // Add a new page display.
diff --git a/core/profiles/standard/standard.info.yml b/core/profiles/standard/standard.info.yml
index 26bef9502edf4a87c3c73e888a729f192d276fa8..b8c84612d9f566a4f4cfed70a973a3c1029231be 100644
--- a/core/profiles/standard/standard.info.yml
+++ b/core/profiles/standard/standard.info.yml
@@ -21,7 +21,7 @@ dependencies:
   - entity_reference
   - help
   - image
-  - menu
+  - menu_ui
   - options
   - path
   - taxonomy