diff --git a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
index 65f167c..3fea947 100644
--- a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
+++ b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
@@ -118,11 +118,22 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
 
     $this->entities = $this->load();
+    $delta = 10;
+    // Change the delta of the weight field if have more than 20 entities.
+    if (!empty($this->weightKey)) {
+      $count = count($this->entities);
+      if ($count > 20) {
+        $delta = ceil(count($this->entities) / 2);
+      }
+    }
     foreach ($this->entities as $entity) {
       $row = $this->buildRow($entity);
       if (isset($row['label'])) {
         $row['label'] = array('#markup' => $row['label']);
       }
+      if (isset($row['weight'])) {
+        $row['weight']['#delta'] = $delta;
+      }
       $form[$this->entitiesKey][$entity->id()] = $row;
     }
 
