diff --git config/schema/taxonomy_menu.schema.yml config/schema/taxonomy_menu.schema.yml
index 2f412e9..f353a1c 100644
--- config/schema/taxonomy_menu.schema.yml
+++ config/schema/taxonomy_menu.schema.yml
@@ -17,3 +17,9 @@ taxonomy_menu.taxonomy_menu.*:
     expanded:
       type: boolean
       label: 'Expanded'
+    depth:
+      type: integer
+      label: 'Depth'
+    menu_parent:
+      type: string
+      label: 'Menu parent'
diff --git src/Entity/TaxonomyMenu.php src/Entity/TaxonomyMenu.php
index 37c4119..30f4132 100644
--- src/Entity/TaxonomyMenu.php
+++ src/Entity/TaxonomyMenu.php
@@ -65,6 +65,11 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   protected $vocabulary;
 
   /**
+   * @todo
+   */
+  protected $depth;
+
+  /**
    * The menu to embed the vocabulary.
    *
    * @var string
@@ -73,12 +78,17 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   protected $menu;
 
   /**
-   * The TaxonomyMenu mode.
+   * The expanded mode.
    *
    * @var boolean
    */
   public $expanded;
 
+   /**
+   * @todo
+   */
+  protected $menu_parent;
+
   /**
    * {@inheritdoc}
    */
@@ -89,6 +99,13 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   /**
    * {@inheritdoc}
    */
+  public function getDepth() {
+    return $this->depth;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getMenu() {
     return $this->menu;
   }
@@ -96,6 +113,13 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
   /**
    * {@inheritdoc}
    */
+  public function getMenuParent() {
+    return $this->menu_parent;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function preSave(EntityStorageInterface $storage) {
     parent::preSave($storage);
     if (!$this->isNew()) {
@@ -138,7 +162,7 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
     /** @var $termStorage \Drupal\taxonomy\TermStorageInterface */
     $termStorage = $this->entityTypeManager()->getStorage('taxonomy_term');
     // Load taxonomy terms for tax menu vocab.
-    $terms = $termStorage->loadTree($this->getVocabulary());
+    $terms = $termStorage->loadTree($this->getVocabulary(), 0, $this->getDepth() + 1);
 
     $links = [];
 
@@ -204,7 +228,7 @@ class TaxonomyMenu extends ConfigEntityBase implements TaxonomyMenuInterface {
 
     // Please note: if menu_parent_id is NULL, it will not update the hierarchy properly.
     if (empty($menu_parent_id)) {
-      $menu_parent_id = '0';
+      $menu_parent_id = str_replace($this->getMenu() . ':', '', $this->getMenuParent());
     }
 
     // TODO: Consider implementing a forced weight based on taxonomy tree.
diff --git src/Form/TaxonomyMenuForm.php src/Form/TaxonomyMenuForm.php
index 63c79ef..77f9a7a 100644
--- src/Form/TaxonomyMenuForm.php
+++ src/Form/TaxonomyMenuForm.php
@@ -9,6 +9,7 @@ namespace Drupal\taxonomy_menu\Form;
 
 use Drupal\Core\Entity\EntityForm;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\system\Entity\Menu;
 
 /**
  * Class TaxonomyMenuForm.
@@ -67,11 +68,33 @@ class TaxonomyMenuForm extends EntityForm {
       '#options' => $options,
       '#default_value' => $taxonomy_menu->getMenu(),
     ];
-
     $form['expanded'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('All menus entries expanded'),
       '#default_value' => $taxonomy_menu->expanded,
+    $form['depth'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Depth'),
+      '#default_value' => $taxonomy_menu->getDepth(),
+      '#options' => range(1,9),
+    ];
+
+    // Menu selection.
+    $custom_menus = Menu::loadMultiple();
+    foreach ($custom_menus as $menu_name => $menu) {
+      $custom_menus[$menu_name] = $menu->label();
+    }
+    asort($custom_menus);
+
+    $menu_parent_selector = \Drupal::service('menu.parent_form_selector');
+    $available_menus = $custom_menus;
+    $menu_options = $menu_parent_selector->getParentSelectOptions(null, $available_menus);
+
+    $form['menu_parent'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Parent menu link'),
+      '#options' => $menu_options,
+      '#default_value' => $taxonomy_menu->getMenuParent(),
     ];
 
     return $form;
diff --git src/Plugin/Menu/TaxonomyMenuMenuLink.php src/Plugin/Menu/TaxonomyMenuMenuLink.php
index b31b193..223c0fc 100644
--- src/Plugin/Menu/TaxonomyMenuMenuLink.php
+++ src/Plugin/Menu/TaxonomyMenuMenuLink.php
@@ -25,7 +25,7 @@ class TaxonomyMenuMenuLink extends MenuLinkBase implements ContainerFactoryPlugi
    */
   protected $overrideAllowed = array(
     //'menu_name' => 1,
-    'parent' => 1,
+    //'parent' => 1,
     'weight' => 1,
     'expanded' => 1,
     'enabled' => 1,
diff --git src/TaxonomyMenuInterface.php src/TaxonomyMenuInterface.php
index 1ce845c..7a0c05c 100644
--- src/TaxonomyMenuInterface.php
+++ src/TaxonomyMenuInterface.php
@@ -28,6 +28,16 @@ interface TaxonomyMenuInterface extends ConfigEntityInterface {
   public function getVocabulary();
 
   /**
+   * @todo
+   */
+  public function getDepth();
+
+  /**
+   * @todo
+   */
+  public function getMenuParent();
+
+  /**
    * Get menu link plugin definitions
    *
    * @param array $base_plugin_definition
diff --git src/Tests/TaxonomyMenuOperations.php src/Tests/TaxonomyMenuOperations.php
index 9d84b96..46b7646 100644
--- src/Tests/TaxonomyMenuOperations.php
+++ src/Tests/TaxonomyMenuOperations.php
@@ -84,6 +84,8 @@ class TaxonomyMenuOperations extends WebTestBase {
       'vocabulary' => 'test_tax_vocab',
       'menu' => 'test-menu',
       'expanded' => 1,
+      'depth' => '1',
+      'menu_parent' => 'test-menu:',
     ];
     $this->drupalPostForm(NULL, $edit, t('Save'));
   }
