diff --git a/Marlin/language_an.h b/Marlin/language_an.h
index 814abe27eaa1b40704df0bff917bdfbc7e71be8c..90e8169fea99654f7ec456d72f4e86f9e41cb921 100644
--- a/Marlin/language_an.h
+++ b/Marlin/language_an.h
@@ -81,10 +81,8 @@
 #define MSG_TEMPERATURE                     "Temperatura"
 #define MSG_MOTION                          "Movimiento"
 #define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Contrast"
 #define MSG_STORE_EPROM                     "Alzar Memoria"
 #define MSG_LOAD_EPROM                      "Cargar Memoria"
diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h
index 78670c1f346bd94071a305216f4219c7b793135a..ca7c5264900b608ceee56ad38c12b1dd41cf0173 100644
--- a/Marlin/language_bg.h
+++ b/Marlin/language_bg.h
@@ -7,12 +7,12 @@
  */
 #ifndef LANGUAGE_BG_H
 #define LANGUAGE_BG_H
- 
+
 #define MAPPER_D0D1                // For Cyrillic
 // Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
 //#define SIMULATE_ROMFONT
 #define DISPLAY_CHARSET_ISO10646_5
- 
+
 #define WELCOME_MSG                         MACHINE_NAME " Готов."
 #define MSG_SD_INSERTED                     "Картата е поставена"
 #define MSG_SD_REMOVED                      "Картата е извадена"
@@ -83,9 +83,7 @@
 #define MSG_MOTION                          "Движение"
 #define MSG_VOLUMETRIC                      "Нишка"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Диам. нишка 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Диам. нишка 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Диам. нишка 3"
+#define MSG_FILAMENT_DIAM                   "Диам. нишка"
 #define MSG_CONTRAST                        "LCD контраст"
 #define MSG_STORE_EPROM                     "Запази в EPROM"
 #define MSG_LOAD_EPROM                      "Зареди от EPROM"
@@ -126,7 +124,7 @@
 #define MSG_ENDSTOP_ABORT                   "Стоп Кр.Изключватели"
 #define MSG_END_HOUR                        "часа"
 #define MSG_END_MINUTE                      "минути"
- 
+
 #if ENABLED(DELTA_CALIBRATION_MENU)
     #define MSG_DELTA_CALIBRATE             "Делта Калибровка"
     #define MSG_DELTA_CALIBRATE_X           "Калибровка X"
@@ -134,5 +132,5 @@
     #define MSG_DELTA_CALIBRATE_Z           "Калибровка Z"
     #define MSG_DELTA_CALIBRATE_CENTER      "Калибровка Център"
 #endif // DELTA_CALIBRATION_MENU
- 
+
 #endif // LANGUAGE_BG_H
diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h
index a796b1e1e7ae7e6351828c80a3007f1b3de61a51..a5b9d08c3d10883886472bbf978a50b2ecadf467 100644
--- a/Marlin/language_ca.h
+++ b/Marlin/language_ca.h
@@ -8,7 +8,7 @@
 #ifndef LANGUAGE_CA_H
 #define LANGUAGE_CA_H
 
-//#define MAPPER_NON 
+//#define MAPPER_NON
 #define MAPPER_C2C3  // because of "ó"
 // Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
 //#define SIMULATE_ROMFONT
@@ -83,9 +83,7 @@
 #define MSG_MOTION                          "Moviment"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Contrast de LCD"
 #define MSG_STORE_EPROM                     "Desar a memoria"
 #define MSG_LOAD_EPROM                      "Carregar de mem."
diff --git a/Marlin/language_cn.h b/Marlin/language_cn.h
index 71565501eedf8fe80f53a5fbc38f32e945717655..5c5a94ce2e73c19a6f98348a789e7dce3d813ba6 100644
--- a/Marlin/language_cn.h
+++ b/Marlin/language_cn.h
@@ -30,10 +30,6 @@
   #define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " \xc5\xc6"
   #define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " \xbe\xc6"
   #define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " \xbe\xbf"
-  #define MSG_H1                              "1"
-  #define MSG_H2                              "2"
-  #define MSG_H3                              "3"
-  #define MSG_H4                              "4"
   #define MSG_COOLDOWN                        "\xc8\xc9"
   #define MSG_SWITCH_PS_ON                    "\xb9\xcb\xca\xb3"
   #define MSG_SWITCH_PS_OFF                   "\xb9\xcb\xb5\xb6"
@@ -50,11 +46,6 @@
   #define MSG_MOVE_10MM                       "\xc1\xb2 10mm"
   #define MSG_SPEED                           "\xd1\xd2"
   #define MSG_NOZZLE                          "\xd3\xd4"
-  #define MSG_N0                              " 0"
-  #define MSG_N1                              " 1"
-  #define MSG_N2                              " 2"
-  #define MSG_N3                              " 3"
-  #define MSG_N4                              " 4"
   #define MSG_BED                             "\xc4\xc7"
   #define MSG_FAN_SPEED                       "\xd5\xd6\xd1\xd2"
   #define MSG_FLOW                            "\xcc\xad\xd1\xd2"
@@ -69,9 +60,6 @@
   #define MSG_PID_I                           "PID-I"
   #define MSG_PID_D                           "PID-D"
   #define MSG_PID_C                           "PID-C"
-  #define MSG_E2                              " E2"
-  #define MSG_E3                              " E3"
-  #define MSG_E4                              " E4"
   #define MSG_ACC                             "Accel"
   #define MSG_VXY_JERK                        "Vxy-jerk"
   #define MSG_VZ_JERK                         "Vz-jerk"
@@ -94,10 +82,7 @@
   #define MSG_MOTION                          "\xdf\xb2"
   #define MSG_VOLUMETRIC                      "Filament"
   #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-  #define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-  #define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-  #define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
-  #define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Dia. 4"
+  #define MSG_FILAMENT_DIAM                   "Fil. Dia."
   #define MSG_CONTRAST                        "LCD contrast"
   #define MSG_STORE_EPROM                     "Store memory"
   #define MSG_LOAD_EPROM                      "Load memory"
diff --git a/Marlin/language_cz.h b/Marlin/language_cz.h
index 8702007955f127a1e85712965bf46d92a2629221..f32ff0dcfba5a56c45f58486566fdbfb3f2a2082 100644
--- a/Marlin/language_cz.h
+++ b/Marlin/language_cz.h
@@ -2,7 +2,7 @@
  * Czech
  *
  * LCD Menu Messages
- * Se also documentation/LCDLanguageFont.md
+ * See also documentation/LCDLanguageFont.md
  *
  * Translated by Petr Zahradnik, Computer Laboratory
  * Blog and video blog Zahradnik se bavi
@@ -36,10 +36,6 @@
 #define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " Vse"
 #define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " Podloz"
 #define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " Nast"
-#define MSG_H1                              "1"
-#define MSG_H2                              "2"
-#define MSG_H3                              "3"
-#define MSG_H4                              "4"
 #define MSG_COOLDOWN                        "Zchladit"
 #define MSG_SWITCH_PS_ON                    "Zapnout napajeni"
 #define MSG_SWITCH_PS_OFF                   "Vypnout napajeni"
@@ -51,19 +47,11 @@
 #define MSG_MOVE_Y                          "Posunout Y"
 #define MSG_MOVE_Z                          "Posunout Z"
 #define MSG_MOVE_E                          "Extruder"
-#define MSG_MOVE_E1                         "Extruder1"
-#define MSG_MOVE_E2                         "Extruder2"
-#define MSG_MOVE_E3                         "Extruder3"
 #define MSG_MOVE_01MM                       "Posunout o 0,1mm"
 #define MSG_MOVE_1MM                        "Posunout o 1mm"
 #define MSG_MOVE_10MM                       "Posunout o 10mm"
 #define MSG_SPEED                           "Rychlost"
 #define MSG_NOZZLE                          "Tryska"
-#define MSG_N0                              " 0"
-#define MSG_N1                              " 1"
-#define MSG_N2                              " 2"
-#define MSG_N3                              " 3"
-#define MSG_N4                              " 4"
 #define MSG_BED                             "Podlozka"
 #define MSG_FAN_SPEED                       "Rychlost vent."
 #define MSG_FLOW                            "Prutok"
@@ -78,9 +66,6 @@
 #define MSG_PID_I                           "PID-I"
 #define MSG_PID_D                           "PID-D"
 #define MSG_PID_C                           "PID-C"
-#define MSG_E2                              " E2"
-#define MSG_E3                              " E3"
-#define MSG_E4                              " E4"
 #define MSG_ACC                             "Zrychl"
 #define MSG_VXY_JERK                        "Vxy-jerk"
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -103,10 +88,7 @@
 #define MSG_MOTION                          "Pohyb"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E na mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Prum. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Prum. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Prum. 3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Prum. 4"
+#define MSG_FILAMENT_DIAM                   "Fil. Prum."
 #define MSG_CONTRAST                        "Kontrast LCD"
 #define MSG_STORE_EPROM                     "Ulozit nastaveni"
 #define MSG_LOAD_EPROM                      "Nacist nastaveni"
diff --git a/Marlin/language_da.h b/Marlin/language_da.h
index 8f2688b6b55c253ea6c57e481e93c1b2301932ca..61f03e08d3c0813a8d3fd2ad9638280c12f9fd81 100644
--- a/Marlin/language_da.h
+++ b/Marlin/language_da.h
@@ -42,8 +42,6 @@
 #define MSG_MOVE_Y                          "Flyt Y"
 #define MSG_MOVE_Z                          "Flyt Z"
 #define MSG_MOVE_E                          "Extruder"
-#define MSG_MOVE_E1                         "Extruder2"
-#define MSG_MOVE_E2                         "Extruder3"
 #define MSG_MOVE_01MM                       "Flyt 0.1mm"
 #define MSG_MOVE_1MM                        "Flyt 1mm"
 #define MSG_MOVE_10MM                       "Flyt 10mm"
@@ -54,9 +52,6 @@
 #define MSG_BED                             "Plade"
 #define MSG_FAN_SPEED                       "Blæser hastighed"
 #define MSG_FLOW                            "Flow"
-#define MSG_FLOW0                           "Flow 0"
-#define MSG_FLOW1                           "Flow 1"
-#define MSG_FLOW2                           "Flow 2"
 #define MSG_CONTROL                         "Kontrol"
 #define MSG_MIN                             " \002 Min"
 #define MSG_MAX                             " \002 Max"
@@ -89,9 +84,7 @@
 #define MSG_MOTION                          "Motion"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCD kontrast"
 #define MSG_STORE_EPROM                     "Gem i EEPROM"
 #define MSG_LOAD_EPROM                      "Hent fra EEPROM"
diff --git a/Marlin/language_de.h b/Marlin/language_de.h
index 37bbaa96b0df3f8a8347e88cb2b0f61774c1b4de..3049581ef6cb2ddc4d399d852f91bdbb58ee36b3 100644
--- a/Marlin/language_de.h
+++ b/Marlin/language_de.h
@@ -81,9 +81,7 @@
 #define MSG_MOTION                          "Bewegung"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm³"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Filament D 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Filament D 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Filament D 3"
+#define MSG_FILAMENT_DIAM                   "Filament D"
 #define MSG_CONTRAST                        "LCD Kontrast"
 #define MSG_STORE_EPROM                     "EPROM speichern"
 #define MSG_LOAD_EPROM                      "EPROM laden"
diff --git a/Marlin/language_en.h b/Marlin/language_en.h
index 60e46ba84706ea6317f12c8e48a764132e4cddd6..d035f89829a093a46426f5d80196b932099de3de 100644
--- a/Marlin/language_en.h
+++ b/Marlin/language_en.h
@@ -120,21 +120,18 @@
 #ifndef MSG_MOVE_E
 #define MSG_MOVE_E                          "Extruder"
 #endif
-#if EXTRUDERS > 1
-  #ifndef MSG_MOVE_E1
-  #define MSG_MOVE_E1                       "Extruder1"
-  #endif
-  #if EXTRUDERS > 2
-    #ifndef MSG_MOVE_E2
-    #define MSG_MOVE_E2                     "Extruder2"
-    #endif
-    #if EXTRUDERS > 3
-      #ifndef MSG_MOVE_E3
-      #define MSG_MOVE_E3                   "Extruder3"
-      #endif
-    #endif
-  #endif // EXTRUDERS > 2
-#endif // EXTRUDERS > 1
+#ifndef MSG_MOVE_E1
+#define MSG_MOVE_E1                         "1"
+#endif
+#ifndef MSG_MOVE_E2
+#define MSG_MOVE_E2                         "2"
+#endif
+#ifndef MSG_MOVE_E3
+#define MSG_MOVE_E3                         "3"
+#endif
+#ifndef MSG_MOVE_E4
+#define MSG_MOVE_E4                         "4"
+#endif
 #ifndef MSG_MOVE_01MM
 #define MSG_MOVE_01MM                       "Move 0.1mm"
 #endif
@@ -150,9 +147,6 @@
 #ifndef MSG_NOZZLE
 #define MSG_NOZZLE                          "Nozzle"
 #endif
-#ifndef MSG_N0
-#define MSG_N0                              " 0"
-#endif
 #ifndef MSG_N1
 #define MSG_N1                              " 1"
 #endif
@@ -207,6 +201,9 @@
 #ifndef MSG_PID_C
 #define MSG_PID_C                           "PID-C"
 #endif
+#ifndef MSG_E1
+#define MSG_E1                              " E1"
+#endif
 #ifndef MSG_E2
 #define MSG_E2                              " E2"
 #endif
@@ -282,17 +279,20 @@
 #ifndef MSG_VOLUMETRIC_ENABLED
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
 #endif
-#ifndef MSG_FILAMENT_SIZE_EXTRUDER_0
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
+#ifndef MSG_FILAMENT_DIAM
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
+#endif
+#ifndef MSG_DIAM_E1
+#define MSG_DIAM_E1                         " 1"
 #endif
-#ifndef MSG_FILAMENT_SIZE_EXTRUDER_1
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
+#ifndef MSG_DIAM_E2
+#define MSG_DIAM_E2                         " 2"
 #endif
-#ifndef MSG_FILAMENT_SIZE_EXTRUDER_2
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#ifndef MSG_DIAM_E3
+#define MSG_DIAM_E3                         " 3"
 #endif
-#ifndef MSG_FILAMENT_SIZE_EXTRUDER_3
-#define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Dia. 4"
+#ifndef MSG_DIAM_E4
+#define MSG_DIAM_E4                         " 4"
 #endif
 #ifndef MSG_CONTRAST
 #define MSG_CONTRAST                        "LCD contrast"
diff --git a/Marlin/language_es.h b/Marlin/language_es.h
index 4dd0b5a7bf884f273b7200b24cd7b82d7dc0beda..85de78f5b0101d7fcbd57226630c9da7dfe35f84 100644
--- a/Marlin/language_es.h
+++ b/Marlin/language_es.h
@@ -81,10 +81,8 @@
 #define MSG_TEMPERATURE                     "Temperatura"
 #define MSG_MOTION                          "Movimiento"
 #define MSG_VOLUMETRIC                      "Filamento"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Contraste"
 #define MSG_STORE_EPROM                     "Guardar memoria"
 #define MSG_LOAD_EPROM                      "Cargar memoria"
diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h
index cfb6eeb8d87fa8ccac54725f2e810eb1c896e000..331e020b8bb28013f2baed1a9d0ff6fd1dd66422 100644
--- a/Marlin/language_eu.h
+++ b/Marlin/language_eu.h
@@ -81,10 +81,8 @@
 #define MSG_TEMPERATURE                     "Tenperatura"
 #define MSG_MOTION                          "Mugimendua"
 #define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCD kontrastea"
 #define MSG_STORE_EPROM                     "Gorde memoria"
 #define MSG_LOAD_EPROM                      "Kargatu memoria"
diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h
index 837acf747c683a54ef84589eff71ab847df72f12..5815a97a3a855b3bab7999ee17b09cbca57108f6 100644
--- a/Marlin/language_fi.h
+++ b/Marlin/language_fi.h
@@ -82,9 +82,7 @@
 #define MSG_MOTION                          "Liike"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm³"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCD kontrasti"
 #define MSG_STORE_EPROM                     "Tallenna muistiin"
 #define MSG_LOAD_EPROM                      "Lataa muistista"
diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h
index 7e1d27991aa181b33828cec841acefdabf2aa29c..d46d235c58e23ef489f85b6eb4052e649d7820ae 100644
--- a/Marlin/language_fr.h
+++ b/Marlin/language_fr.h
@@ -84,9 +84,7 @@
 #define MSG_MOTION                          "Mouvement"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Contraste LCD"
 #define MSG_STORE_EPROM                     "Sauver config"
 #define MSG_LOAD_EPROM                      "Lire config"
diff --git a/Marlin/language_it.h b/Marlin/language_it.h
index 9ed836dadf99e10bcacfa740a502690ad91e5c46..3e2e11ee8386c1782b1fea7251ccc4d083dff512 100644
--- a/Marlin/language_it.h
+++ b/Marlin/language_it.h
@@ -81,11 +81,8 @@
 #define MSG_TEMPERATURE                     "Temperatura"
 #define MSG_MOTION                          "Movimento"
 #define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		          "E in mm³"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Diam. filo 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Diam. filo 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Diam. filo 3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_3        "Diam. filo 4"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm³"
+#define MSG_FILAMENT_DIAM                   "Diam. filo"
 #define MSG_CONTRAST                        "Contrasto LCD"
 #define MSG_STORE_EPROM                     "Salva in EEPROM"
 #define MSG_LOAD_EPROM                      "Carica da EEPROM"
diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h
index f50a1c40e9b77a53e3f4406ddd91620764f5d7f3..07b5d314a3eb1d5e6f28f2abfb91cc9786f5dc02 100644
--- a/Marlin/language_kana.h
+++ b/Marlin/language_kana.h
@@ -5,7 +5,7 @@
  * See also documentation/LCDLanguageFont.md
  *
  */
- 
+
 #ifndef LANGUAGE_KANA_H
 #define LANGUAGE_KANA_H
 
@@ -84,10 +84,7 @@
 #define MSG_MOTION                          "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2"                             // "Motion"
 #define MSG_VOLUMETRIC                      "\xcc\xa8\xd7\xd2\xdd\xc4"                                     // "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Dia. 4"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCD\xba\xdd\xc4\xd7\xbd\xc4"                                  // "LCD contrast"
 #define MSG_STORE_EPROM                     "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3"                             // "Store memory"
 #define MSG_LOAD_EPROM                      "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\ba\xd0"                          // "Load memory"
diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h
index d3f4203cd3fbcd61e6fbc8f498816ef6961fc3ff..ba680e2346ce70b510ddbd75c3598c0e64931cf4 100644
--- a/Marlin/language_kana_utf8.h
+++ b/Marlin/language_kana_utf8.h
@@ -5,7 +5,7 @@
  * See also documentation/LCDLanguageFont.md
  *
  */
- 
+
 #ifndef LANGUAGE_KANA_UTF_H
 #define LANGUAGE_KANA_UTF_H
 
@@ -15,7 +15,7 @@
 #define DISPLAY_CHARSET_ISO10646_KANA
 
 // This is very crude replacement of the codes used in language_kana.h from somebody who really does not know what he is doing.
-// Just to show the potential benefit of unicode. 
+// Just to show the potential benefit of unicode.
 // This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF.
 
 // 片仮名表示定義
@@ -88,10 +88,7 @@
 #define MSG_MOTION                          "ウゴキセツテイ"                // "Motion"
 #define MSG_VOLUMETRIC                      "フィラナント"                    // "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Dia. 4"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCDコントラスト"                 // "LCD contrast"
 #define MSG_STORE_EPROM                     "ナモリヘセケノウ"                 // "Store memory"
 #define MSG_LOAD_EPROM                      "ナモリセラヨミbaミ"               // "Load memory"
diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h
index 1d8b129df1cb45e866e220c03cd8f062b0b0cb23..81772f990e4fb7ee0f6d5d8bd36b49d618350de1 100644
--- a/Marlin/language_nl.h
+++ b/Marlin/language_nl.h
@@ -81,10 +81,8 @@
 #define MSG_TEMPERATURE                     "Temperatuur"
 #define MSG_MOTION                          "Beweging"
 #define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "LCD contrast"
 #define MSG_STORE_EPROM                     "Geheugen opslaan"
 #define MSG_LOAD_EPROM                      "Geheugen laden"
diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h
index acae0dbf27fd59e79b7f5eea422d5aad3ac795ee..e69a7ead9f9a3e1026f7811e0206ba9315678e6b 100644
--- a/Marlin/language_pl.h
+++ b/Marlin/language_pl.h
@@ -81,10 +81,8 @@
 #define MSG_TEMPERATURE                     "Temperatura"
 #define MSG_MOTION                          "Ruch"
 #define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Kontrast LCD"
 #define MSG_STORE_EPROM                     "Zapisz w pamieci"
 #define MSG_LOAD_EPROM                      "Wczytaj z pamieci"
diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h
index f18b6f887d4232d2b0ea18215026d641e3602325..56def7aa7d3cc433768c0cfcb31032f7f1f4e6d3 100644
--- a/Marlin/language_pt-br.h
+++ b/Marlin/language_pt-br.h
@@ -82,9 +82,7 @@
 #define MSG_MOTION                          "Movimento"
 #define MSG_VOLUMETRIC                      "Filament"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
 #define MSG_CONTRAST                        "Contrast"
 #define MSG_STORE_EPROM                     "Guardar memoria"
 #define MSG_LOAD_EPROM                      "Carregar memoria"
diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h
index ce80eff649f8b292104cd16c78e9700b6a46e3f2..0c7611c581250996cabfc150f8a068634c1d9f48 100644
--- a/Marlin/language_pt.h
+++ b/Marlin/language_pt.h
@@ -82,9 +82,7 @@
 #define MSG_MOTION                          "Movimento"
 #define MSG_VOLUMETRIC                      "Filamento"
 #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Diam. 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Diam. 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Diam. 3"
+#define MSG_FILAMENT_DIAM                   "Fil. Diam."
 #define MSG_CONTRAST                        "Contraste"
 #define MSG_STORE_EPROM                     "Guardar na memoria"
 #define MSG_LOAD_EPROM                      "Carregar da memoria"
diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h
index 729e03d6f4bec24e77a128440233b2cb70bd4c85..d35daba9e35ac59c974e36dee32f582188cbd53f 100644
--- a/Marlin/language_ru.h
+++ b/Marlin/language_ru.h
@@ -83,9 +83,7 @@
 #define MSG_MOTION                          "Механика"
 #define MSG_VOLUMETRIC                      "Пруток"
 #define MSG_VOLUMETRIC_ENABLED              "E в mm3"
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Диаметр прутка 1"
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Диаметр прутка 2"
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Диаметр прутка 3"
+#define MSG_FILAMENT_DIAM                   "Диаметр прутка"
 #define MSG_CONTRAST                        "Контраст LCD"
 #define MSG_STORE_EPROM                     "Сохранить в EEPROM"
 #define MSG_LOAD_EPROM                      "Считать из EEPROM"
diff --git a/Marlin/language_test.h b/Marlin/language_test.h
index e26848ef04f6dfa6be57919059c9c99035e849f9..0135a5d95794106e7235f69585a8ac680df01af7 100644
--- a/Marlin/language_test.h
+++ b/Marlin/language_test.h
@@ -8,16 +8,16 @@
 #ifndef LANGUAGE_TEST_H
 #define LANGUAGE_TEST_H
 
-// Select ONE of the following Mappers. 
-// They decide what to do with a symbol in the area of [0x80:0xFF]. They take a symbol of this language file and make them point 
+// Select ONE of the following Mappers.
+// They decide what to do with a symbol in the area of [0x80:0xFF]. They take a symbol of this language file and make them point
 // into an array with 128 cells, where they'll find the place of the symbol of the font in use.
 //
-// a.)For ASCII coded Language_xx.h files like (en) there are no occurrences of symbols above 0x7F so no mapper is needed. 
+// a.)For ASCII coded Language_xx.h files like (en) there are no occurrences of symbols above 0x7F so no mapper is needed.
 //   If such a symbol appears it is mapped directly into the font. This is the case for the language files we used until now, with all the STR_XX or
 //   "\xxx" symbols. All Symbols are only one byte long.
 // b.) For Unicoded Language_xx.h files (currently ru, de and kana_utf8 ) the non ASCII [0x00-0x7F] symbols are represented by more then one byte.
 //   In the case of two bytes the first is pointing to a 'codepage' and the second to a place in the codepage. These codepages contain 64 symbols.
-//   So two of them can be mapped. For most of the European languages the necessary symbols are contained in the pages C2 and C3. Cyrillic uses D0 
+//   So two of them can be mapped. For most of the European languages the necessary symbols are contained in the pages C2 and C3. Cyrillic uses D0
 //   and D1.
 // c.) For katakana (one of the Japanese symbol sets) Unicode uses 3 bytes. Here the second byte also points to a codepage and byte 3 to the symbol.
 //   I hope the pages E282 and E283 are sufficient to write katakana.
@@ -124,14 +124,14 @@
   #define MSG_COOLDOWN                        STRG_C3_9
   #define MSG_SWITCH_PS_OFF                   STRG_C3_a
   #define MSG_MOVE_AXIS                       STRG_C3_b
-  
+
   #define MSG_MAIN                            STRG_OKTAL_2
   #define MSG_TEMPERATURE                     STRG_OKTAL_3
   #define MSG_MOTION                          STRG_OKTAL_4
   #define MSG_VOLUMETRIC                      STRG_OKTAL_5
   #define MSG_CONTRAST                        STRG_OKTAL_6
   #define MSG_RESTORE_FAILSAFE                STRG_OKTAL_7
-  
+
   #define MSG_NOZZLE                          STRG_OKTAL_8
   #define MSG_FAN_SPEED                       STRG_OKTAL_9
   #define MSG_AUTOTEMP                        STRG_OKTAL_a
@@ -159,14 +159,14 @@
   #define MSG_COOLDOWN                        STRG_D1_9
   #define MSG_SWITCH_PS_OFF                   STRG_D1_a
   #define MSG_MOVE_AXIS                       STRG_D1_b
-  
+
   #define MSG_MAIN                            STRG_OKTAL_2
   #define MSG_TEMPERATURE                     STRG_OKTAL_3
   #define MSG_MOTION                          STRG_OKTAL_4
   #define MSG_VOLUMETRIC                      STRG_OKTAL_5
   #define MSG_CONTRAST                        STRG_OKTAL_6
   #define MSG_RESTORE_FAILSAFE                STRG_OKTAL_7
-  
+
   #define MSG_NOZZLE                          STRG_OKTAL_8
   #define MSG_FAN_SPEED                       STRG_OKTAL_9
   #define MSG_AUTOTEMP                        STRG_OKTAL_a
@@ -194,14 +194,14 @@
   #define MSG_COOLDOWN                        STRG_E383_9
   #define MSG_SWITCH_PS_OFF                   STRG_E383_a
   #define MSG_MOVE_AXIS                       STRG_E383_b
-  
+
   #define MSG_MAIN                            STRG_OKTAL_2
   #define MSG_TEMPERATURE                     STRG_OKTAL_3
   #define MSG_MOTION                          STRG_OKTAL_4
   #define MSG_VOLUMETRIC                      STRG_OKTAL_5
   #define MSG_CONTRAST                        STRG_OKTAL_6
   #define MSG_RESTORE_FAILSAFE                STRG_OKTAL_7
-  
+
   #define MSG_NOZZLE                          STRG_OKTAL_8
   #define MSG_FAN_SPEED                       STRG_OKTAL_9
   #define MSG_AUTOTEMP                        STRG_OKTAL_a
diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp
index 1af2072f37a26908c01b4163c773bb659c2613d2..720e9faa01eb88f167628da89ebeba15f958a29c 100644
--- a/Marlin/ultralcd.cpp
+++ b/Marlin/ultralcd.cpp
@@ -495,14 +495,19 @@ static void lcd_tune_menu() {
 
   //
   // Nozzle:
+  // Nozzle 1:
   // Nozzle 2:
   // Nozzle 3:
   // Nozzle 4:
   //
-  #if TEMP_SENSOR_0 != 0
-    MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
-  #endif
-  #if EXTRUDERS > 1
+  #if EXTRUDERS == 1
+    #if TEMP_SENSOR_0 != 0
+      MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
+    #endif
+  #else //EXTRUDERS > 1
+    #if TEMP_SENSOR_0 != 0
+      MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE MSG_N1, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
+    #endif
     #if TEMP_SENSOR_1 != 0
       MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE MSG_N2, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
     #endif
@@ -536,18 +541,21 @@ static void lcd_tune_menu() {
   MENU_ITEM_EDIT(int3, MSG_FLOW, &extruder_multiplier[active_extruder], 10, 999);
 
   //
-  // Flow 0:
+  // Flow:
   // Flow 1:
   // Flow 2:
   // Flow 3:
+  // Flow 4:
   //
-  MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N0, &extruder_multiplier[0], 10, 999);
-  #if EXTRUDERS > 1
-    MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N1, &extruder_multiplier[1], 10, 999);
+  #if EXTRUDERS == 1
+    MENU_ITEM_EDIT(int3, MSG_FLOW, &extruder_multiplier[0], 10, 999);
+  #else // EXTRUDERS > 1
+    MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N1, &extruder_multiplier[0], 10, 999);
+    MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N2, &extruder_multiplier[1], 10, 999);
     #if EXTRUDERS > 2
-      MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N2, &extruder_multiplier[2], 10, 999);
+      MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N3, &extruder_multiplier[2], 10, 999);
       #if EXTRUDERS > 3
-        MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N3, &extruder_multiplier[3], 10, 999);
+        MENU_ITEM_EDIT(int3, MSG_FLOW MSG_N4, &extruder_multiplier[3], 10, 999);
       #endif //EXTRUDERS > 3
     #endif //EXTRUDERS > 2
   #endif //EXTRUDERS > 1
@@ -809,9 +817,9 @@ static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, X_MIN_POS, X_MAX_
 static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, Y_MIN_POS, Y_MAX_POS); }
 static void lcd_move_z() { _lcd_move(PSTR(MSG_MOVE_Z), Z_AXIS, Z_MIN_POS, Z_MAX_POS); }
 static void lcd_move_e(
-#if EXTRUDERS > 1
-  uint8_t e = 0
-#endif
+  #if EXTRUDERS > 1
+    uint8_t e
+  #endif
 ) {
   #if EXTRUDERS > 1
     unsigned short original_active_extruder = active_extruder;
@@ -823,7 +831,24 @@ static void lcd_move_e(
     line_to_current(E_AXIS);
     lcdDrawUpdate = 1;
   }
-  if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_MOVE_E), ftostr31(current_position[E_AXIS]));
+  if (lcdDrawUpdate) {
+    PGM_P pos_label;
+    #if EXTRUDERS == 1
+      pos_label = PSTR(MSG_MOVE_E);
+    #else
+      switch (e) {
+        case 0: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E1); break;
+        case 1: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E2); break;
+        #if EXTRUDERS > 2
+          case 2: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E3); break;
+          #if EXTRUDERS > 3
+            case 3: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E4); break;
+          #endif //EXTRUDERS > 3
+        #endif //EXTRUDERS > 2
+      }
+    #endif //EXTRUDERS > 1
+    lcd_implementation_drawedit(pos_label, ftostr31(current_position[E_AXIS]));
+  }
   if (LCD_CLICKED) lcd_goto_menu(lcd_move_menu_axis);
   #if EXTRUDERS > 1
     active_extruder = original_active_extruder;
@@ -831,6 +856,7 @@ static void lcd_move_e(
 }
 
 #if EXTRUDERS > 1
+  static void lcd_move_e0() { lcd_move_e(0); }
   static void lcd_move_e1() { lcd_move_e(1); }
   #if EXTRUDERS > 2
     static void lcd_move_e2() { lcd_move_e(2); }
@@ -853,13 +879,15 @@ static void lcd_move_menu_axis() {
   MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_y);
   if (move_menu_scale < 10.0) {
     MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_z);
-    MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_e);
-    #if EXTRUDERS > 1
-      MENU_ITEM(submenu, MSG_MOVE_E1, lcd_move_e1);
+    #if EXTRUDERS == 1
+      MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_e);
+    #else
+      MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_e0);
+      MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_e1);
       #if EXTRUDERS > 2
-        MENU_ITEM(submenu, MSG_MOVE_E2, lcd_move_e2);
+        MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_e2);
         #if EXTRUDERS > 3
-          MENU_ITEM(submenu, MSG_MOVE_E3, lcd_move_e3);
+          MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_e3);
         #endif
       #endif
     #endif // EXTRUDERS > 1
@@ -942,18 +970,18 @@ static void lcd_control_menu() {
     PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
     updatePID();
   }
-  void copy_and_scalePID_i_E1() { copy_and_scalePID_i(0); }
-  void copy_and_scalePID_d_E1() { copy_and_scalePID_d(0); }
+  #define COPY_AND_SCALE(eindex) \
+    void copy_and_scalePID_i_E ## eindex() { copy_and_scalePID_i(eindex); } \
+    void copy_and_scalePID_d_E ## eindex() { copy_and_scalePID_d(eindex); }
+
+  COPY_AND_SCALE(0);
   #if ENABLED(PID_PARAMS_PER_EXTRUDER)
     #if EXTRUDERS > 1
-      void copy_and_scalePID_i_E2() { copy_and_scalePID_i(1); }
-      void copy_and_scalePID_d_E2() { copy_and_scalePID_d(1); }
+      COPY_AND_SCALE(1);
       #if EXTRUDERS > 2
-        void copy_and_scalePID_i_E3() { copy_and_scalePID_i(2); }
-        void copy_and_scalePID_d_E3() { copy_and_scalePID_d(2); }
+        COPY_AND_SCALE(2);
         #if EXTRUDERS > 3
-          void copy_and_scalePID_i_E4() { copy_and_scalePID_i(3); }
-          void copy_and_scalePID_d_E4() { copy_and_scalePID_d(3); }
+          COPY_AND_SCALE(3);
         #endif //EXTRUDERS > 3
       #endif //EXTRUDERS > 2
     #endif //EXTRUDERS > 1
@@ -975,12 +1003,17 @@ static void lcd_control_temperature_menu() {
   MENU_ITEM(back, MSG_CONTROL, lcd_control_menu);
 
   //
-  // Nozzle, Nozzle 2, Nozzle 3, Nozzle 4
+  // Nozzle
+  // Nozzle 1, Nozzle 2, Nozzle 3, Nozzle 4
   //
-  #if TEMP_SENSOR_0 != 0
-    MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
-  #endif
-  #if EXTRUDERS > 1
+  #if EXTRUDERS == 1
+    #if TEMP_SENSOR_0 != 0
+      MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
+    #endif
+  #else //EXTRUDERS > 1
+    #if TEMP_SENSOR_0 != 0
+      MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE MSG_N1, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
+    #endif
     #if TEMP_SENSOR_1 != 0
       MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_NOZZLE MSG_N2, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
     #endif
@@ -1020,59 +1053,42 @@ static void lcd_control_temperature_menu() {
 
   //
   // PID-P, PID-I, PID-D, PID-C
+  // PID-P E1, PID-I E1, PID-D E1, PID-C E1
+  // PID-P E2, PID-I E2, PID-D E2, PID-C E2
+  // PID-P E3, PID-I E3, PID-D E3, PID-C E3
+  // PID-P E4, PID-I E4, PID-D E4, PID-C E4
   //
   #if ENABLED(PIDTEMP)
-    // set up temp variables - undo the default scaling
-    raw_Ki = unscalePID_i(PID_PARAM(Ki,0));
-    raw_Kd = unscalePID_d(PID_PARAM(Kd,0));
-    MENU_ITEM_EDIT(float52, MSG_PID_P, &PID_PARAM(Kp,0), 1, 9990);
-    // i is typically a small value so allows values below 1
-    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E1);
-    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D, &raw_Kd, 1, 9990, copy_and_scalePID_d_E1);
+
+    #define _PID_MENU_ITEMS(ELABEL, eindex) \
+      raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
+      raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
+      MENU_ITEM_EDIT(float52, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
+      MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I ELABEL, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E ## eindex); \
+      MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
+
     #if ENABLED(PID_ADD_EXTRUSION_RATE)
-      MENU_ITEM_EDIT(float3, MSG_PID_C, &PID_PARAM(Kc,0), 1, 9990);
-    #endif//PID_ADD_EXTRUSION_RATE
-    #if ENABLED(PID_PARAMS_PER_EXTRUDER)
-      #if EXTRUDERS > 1
-        // set up temp variables - undo the default scaling
-        raw_Ki = unscalePID_i(PID_PARAM(Ki,1));
-        raw_Kd = unscalePID_d(PID_PARAM(Kd,1));
-        MENU_ITEM_EDIT(float52, MSG_PID_P MSG_E2, &PID_PARAM(Kp,1), 1, 9990);
-        // i is typically a small value so allows values below 1
-        MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I MSG_E2, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E2);
-        MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D MSG_E2, &raw_Kd, 1, 9990, copy_and_scalePID_d_E2);
-        #if ENABLED(PID_ADD_EXTRUSION_RATE)
-          MENU_ITEM_EDIT(float3, MSG_PID_C MSG_E2, &PID_PARAM(Kc,1), 1, 9990);
-        #endif//PID_ADD_EXTRUSION_RATE
+      #define PID_MENU_ITEMS(ELABEL, eindex) \
+        _PID_MENU_ITEMS(ELABEL, eindex); \
+        MENU_ITEM_EDIT(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990)
+    #else
+      #define PID_MENU_ITEMS(ELABEL, eindex) _PID_MENU_ITEMS(ELABEL, eindex)
+    #endif
 
-        #if EXTRUDERS > 2
-          // set up temp variables - undo the default scaling
-          raw_Ki = unscalePID_i(PID_PARAM(Ki,2));
-          raw_Kd = unscalePID_d(PID_PARAM(Kd,2));
-          MENU_ITEM_EDIT(float52, MSG_PID_P MSG_E3, &PID_PARAM(Kp,2), 1, 9990);
-          // i is typically a small value so allows values below 1
-          MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I MSG_E3, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E3);
-          MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D MSG_E3, &raw_Kd, 1, 9990, copy_and_scalePID_d_E3);
-          #if ENABLED(PID_ADD_EXTRUSION_RATE)
-            MENU_ITEM_EDIT(float3, MSG_PID_C MSG_E3, &PID_PARAM(Kc,2), 1, 9990);
-          #endif//PID_ADD_EXTRUSION_RATE
+    #if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
+      PID_MENU_ITEMS(MSG_E1, 0);
+      PID_MENU_ITEMS(MSG_E2, 1);
+      #if EXTRUDERS > 2
+        PID_MENU_ITEMS(MSG_E3, 2);
+        #if EXTRUDERS > 3
+          PID_MENU_ITEMS(MSG_E4, 3);
+        #endif //EXTRUDERS > 3
+      #endif //EXTRUDERS > 2
+    #else //!PID_PARAMS_PER_EXTRUDER || EXTRUDERS == 1
+      PID_MENU_ITEMS("", 0);
+    #endif //!PID_PARAMS_PER_EXTRUDER || EXTRUDERS == 1
 
-          #if EXTRUDERS > 3
-            // set up temp variables - undo the default scaling
-            raw_Ki = unscalePID_i(PID_PARAM(Ki,3));
-            raw_Kd = unscalePID_d(PID_PARAM(Kd,3));
-            MENU_ITEM_EDIT(float52, MSG_PID_P MSG_E4, &PID_PARAM(Kp,3), 1, 9990);
-            // i is typically a small value so allows values below 1
-            MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I MSG_E4, &raw_Ki, 0.01, 9990, copy_and_scalePID_i_E4);
-            MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D MSG_E4, &raw_Kd, 1, 9990, copy_and_scalePID_d_E4);
-            #if ENABLED(PID_ADD_EXTRUSION_RATE)
-              MENU_ITEM_EDIT(float3, MSG_PID_C MSG_E4, &PID_PARAM(Kc,3), 1, 9990);
-            #endif//PID_ADD_EXTRUSION_RATE
-          #endif//EXTRUDERS > 3
-        #endif//EXTRUDERS > 2
-      #endif//EXTRUDERS > 1
-    #endif //PID_PARAMS_PER_EXTRUDER
-  #endif//PIDTEMP
+  #endif //PIDTEMP
 
   //
   // Preheat PLA conf
@@ -1181,13 +1197,15 @@ static void lcd_control_volumetric_menu() {
   MENU_ITEM_EDIT_CALLBACK(bool, MSG_VOLUMETRIC_ENABLED, &volumetric_enabled, calculate_volumetric_multipliers);
 
   if (volumetric_enabled) {
-    MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_SIZE_EXTRUDER_0, &filament_size[0], 1.5, 3.25, calculate_volumetric_multipliers);
-    #if EXTRUDERS > 1
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_SIZE_EXTRUDER_1, &filament_size[1], 1.5, 3.25, calculate_volumetric_multipliers);
+    #if EXTRUDERS == 1
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &filament_size[0], 1.5, 3.25, calculate_volumetric_multipliers);
+    #else //EXTRUDERS > 1
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E1, &filament_size[0], 1.5, 3.25, calculate_volumetric_multipliers);
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E2, &filament_size[1], 1.5, 3.25, calculate_volumetric_multipliers);
       #if EXTRUDERS > 2
-        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_SIZE_EXTRUDER_2, &filament_size[2], 1.5, 3.25, calculate_volumetric_multipliers);
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E3, &filament_size[2], 1.5, 3.25, calculate_volumetric_multipliers);
         #if EXTRUDERS > 3
-          MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_SIZE_EXTRUDER_3, &filament_size[3], 1.5, 3.25, calculate_volumetric_multipliers);
+          MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E4, &filament_size[3], 1.5, 3.25, calculate_volumetric_multipliers);
         #endif //EXTRUDERS > 3
       #endif //EXTRUDERS > 2
     #endif //EXTRUDERS > 1