diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index 838b32a..b27061a 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -1090,8 +1090,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 5fec407..8fee2e2 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 06ede2d..d0aac6b 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 d7f8dd0..267cca7 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 5af427e..0000000
--- 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 cca55d8..0000000
--- 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 038487c..0000000
--- 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 36705d5..c7011c9 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 85cc796..dd3d897 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 e3c43a8..083173f 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 dc86f4c..be2b069 100644
--- a/core/modules/menu_link/menu_link.module
+++ b/core/modules/menu_link/menu_link.module
@@ -14,7 +14,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;
   }
 }
@@ -205,12 +205,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 5431b7b..d5dfd64 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 0b77263..fd46114 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 709c71b..04f9d43 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 efc9cdd..eeb40a6 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 7542c57..31b23ab 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 d6720a7..12cc49b 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;
@@ -228,7 +228,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/MenuListController.php b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListController.php
similarity index 95%
rename from core/modules/menu/lib/Drupal/menu/MenuListController.php
rename to core/modules/menu_ui/lib/Drupal/menu_ui/MenuListController.php
index 18a3732..8ac599a 100644
--- a/core/modules/menu/lib/Drupal/menu/MenuListController.php
+++ b/core/modules/menu_ui/lib/Drupal/menu_ui/MenuListController.php
@@ -1,10 +1,10 @@
 <?php
 
 /**
- * Contains \Drupal\menu\MenuListController.
+ * Contains \Drupal\menu_ui\MenuListController.
  */
 
-namespace Drupal\menu;
+namespace Drupal\menu_ui;
 
 use Drupal\Core\Config\Entity\ConfigEntityListController;
 use Drupal\Core\Entity\EntityInterface;
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 eddbaec..48a12bd 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 96%
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 c09875c..679785a 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 9e9af49..73374aa 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 d8fdea8..9c1c67e 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 ef63ae0..96de52d 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;
 
 /**
  * Defines a test class for testing menu and menu link functionality.
@@ -197,7 +197,7 @@ function addCustomMenu() {
 
     // Enable the block.
     $this->drupalPlaceBlock('system_menu_block:' . $menu_name);
-    return menu_load($menu_name);
+    return menu_ui_load($menu_name);
   }
 
   /**
@@ -214,7 +214,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.');
@@ -475,7 +475,7 @@ public function testBlockContextualLinks() {
     $response =  $this->drupalPost('contextual/render', 'application/json', $post, array('query' => array('destination' => 'test-page')));
     $this->assertResponse(200);
     $json = drupal_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 6815f02..ed92f28 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 e1c21a0..a8dda4b 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 50b3999..4a04ab0 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 0000000..22e3a4e
--- /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 b163994..c0fba50 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 037fc62..0e580b4 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 589e69e..1f830d2 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 56cf437..a4e381c 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 0000000..0834821
--- /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 0000000..92aadeb
--- /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.module b/core/modules/menu_ui/menu_ui.module
similarity index 81%
rename from core/modules/menu/menu.module
rename to core/modules/menu_ui/menu_ui.module
index 660e1df..26891de 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -29,12 +29,12 @@
 /**
  * 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. Each menu is rendered in a block that can be enabled and positioned through the <a href="@blocks">Blocks administration page</a>. You can view and manage menus on the <a href="@menus">Menus administration page</a>. For more information, see the online handbook entry for the <a href="@menu">Menu module</a>.', array('@blocks' => url('admin/structure/block'), '@menus' => url('admin/structure/menu'), '@menu' => 'http://drupal.org/documentation/modules/menu/')) . '</p>';
+      $output .= '<p>' . t('The Menu UI 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. Each menu is rendered in a block that can be enabled and positioned through the <a href="@blocks">Blocks administration page</a>. You can view and manage menus on the <a href="@menus">Menus administration page</a>. For more information, see the online handbook entry for the <a href="@menu">Menu module</a>.', array('@blocks' => url('admin/structure/block'), '@menus' => url('admin/structure/menu'), '@menu' => 'http://drupal.org/documentation/modules/menu/')) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Managing menus') . '</dt>';
@@ -54,7 +54,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'),
@@ -65,11 +65,11 @@ function menu_permission() {
 /**
  * Implements hook_menu_link_defaults().
  */
-function menu_menu_link_defaults() {
-  $links['menu.admin.overview'] = array(
+function menu_ui_menu_link_defaults() {
+  $links['menu_ui.admin.overview'] = array(
     'link_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',
   );
   return $links;
@@ -78,27 +78,27 @@ function menu_menu_link_defaults() {
 /**
  * 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')
-    ->setListClass('Drupal\menu\MenuListController')
-    ->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')
+    ->setListClass('Drupal\menu_ui\MenuListController')
+    ->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) {
@@ -114,10 +114,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',
     ),
   );
@@ -131,14 +131,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')) {
@@ -149,7 +149,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
@@ -161,7 +161,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')) {
@@ -172,13 +172,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
@@ -193,7 +193,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.
@@ -207,7 +207,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.
@@ -222,12 +222,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();
   }
 
@@ -248,19 +248,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);
   }
 
   $options = array();
@@ -268,16 +268,16 @@ function _menu_get_options($menus, $available_menus, $item) {
     if (isset($available_menus[$menu_name])) {
       $tree = menu_tree_all_data($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.
@@ -290,7 +290,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);
       }
     }
   }
@@ -299,7 +299,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();
@@ -315,21 +315,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) {
   \Drupal::config('menu.entity.node.' . $type->id())
     ->set('available_menus', array('main'))
     ->set('parent', 'main:0')
@@ -339,14 +339,14 @@ 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) {
   \Drupal::config('menu.entity.node.' . $type->id())->delete();
 }
 
 /**
  * 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'])) {
@@ -375,7 +375,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())
@@ -390,7 +390,7 @@ function menu_node_predelete(EntityInterface $node) {
 /**
  * Implements hook_node_prepare_form().
  */
-function menu_node_prepare_form(NodeInterface $node, $form_display, $operation, array &$form_state) {
+function menu_ui_node_prepare_form(NodeInterface $node, $form_display, $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());
@@ -404,7 +404,7 @@ function menu_node_prepare_form(NodeInterface $node, $form_display, $operation,
         $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();
@@ -416,7 +416,7 @@ function menu_node_prepare_form(NodeInterface $node, $form_display, $operation,
         $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();
@@ -440,14 +440,14 @@ function menu_node_prepare_form(NodeInterface $node, $form_display, $operation,
   }
   // 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);
 }
 
@@ -456,15 +456,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;
@@ -557,9 +557,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
@@ -576,10 +576,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();
@@ -608,9 +608,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'),
@@ -620,15 +620,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'])))
@@ -646,7 +646,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());
@@ -662,7 +662,7 @@ function menu_get_menus($all = TRUE) {
 /**
  * Implements hook_preprocess_HOOK() for block templates.
  */
-function menu_preprocess_block(&$variables) {
+function menu_ui_preprocess_block(&$variables) {
   if ($variables['configuration']['module'] == 'menu') {
     $variables['attributes']['role'] = 'navigation';
   }
diff --git a/core/modules/menu/menu.routing.yml b/core/modules/menu_ui/menu_ui.routing.yml
similarity index 78%
rename from core/modules/menu/menu.routing.yml
rename to core/modules/menu_ui/menu_ui.routing.yml
index f3f6e4b..020cb4b 100644
--- a/core/modules/menu/menu.routing.yml
+++ b/core/modules/menu_ui/menu_ui.routing.yml
@@ -1,4 +1,4 @@
-menu.settings:
+menu_ui.settings:
   path: '/admin/structure/menu/settings'
   defaults:
     _form: 'Drupal\menu\MenuSettingsForm'
@@ -6,7 +6,7 @@ menu.settings:
   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 b57bd3e..949f760 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: d8_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 dc6fe2d..ee644e7 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
@@ -10,7 +10,7 @@
 use Drupal\Core\Database\Connection;
 
 /**
- * Database dump for testing menu.settings.yml migration.
+ * Database dump for testing menu_ui.settings.yml migration.
  */
 class Drupal6MenuSettings {
 
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 ee96563..7d0584e 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
@@ -21,15 +21,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',
     );
   }
@@ -45,7 +45,7 @@ public function testMenuSettings() {
     $this->prepare($migration, $dumps);
     $executable = new MigrateExecutable($migration, new MigrateMessage());
     $executable->import();
-    $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 b245c34..5e29222 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 cce904b..c927d5f 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 082a6a7..1b1956d 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 bbe5a71..706db7a 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 944e0d4..c0b6771 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 b7a8bdf..290eaad 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 31b1ff2..8435589 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 26bef95..b8c8461 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
