diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp
index cb958d9772..d46217f575 100644
--- a/Marlin/configuration_store.cpp
+++ b/Marlin/configuration_store.cpp
@@ -40,7 +40,6 @@
 
 // Change EEPROM version if these are changed:
 #define EEPROM_OFFSET 100
-#define MAX_EXTRUDERS 4
 
 /**
  * V24 EEPROM Layout:
diff --git a/Marlin/pins.h b/Marlin/pins.h
index bfb30abec4..f0720d7bf3 100644
--- a/Marlin/pins.h
+++ b/Marlin/pins.h
@@ -275,6 +275,10 @@
   #define SUICIDE_PIN -1
 #endif
 
+#ifndef MAX_EXTRUDERS
+  #define MAX_EXTRUDERS 4
+#endif
+
 // Marlin needs to account for pins that equal -1
 #define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : analogInputToDigitalPin(p))
 
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 731dae9c75..0d36f15b30 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -151,7 +151,7 @@ volatile bool Temperature::temp_meas_ready = false;
   millis_t Temperature::next_bed_check_ms;
 #endif
 
-unsigned long Temperature::raw_temp_value[4] = { 0 };
+unsigned long Temperature::raw_temp_value[MAX_EXTRUDERS] = { 0 };
 unsigned long Temperature::raw_temp_bed_value = 0;
 
 // Init min and max temp with extreme values to prevent false errors during startup