diff --git a/Marlin/boards.h b/Marlin/boards.h
index b97ea211ca813fe88052236678c154d12120cd95..fa06f0dedb5b771264c0da1a785485dc4053fb57 100644
--- a/Marlin/boards.h
+++ b/Marlin/boards.h
@@ -41,6 +41,7 @@
 #define BOARD_MEGATRONICS       70   // Megatronics
 #define BOARD_MEGATRONICS_2     701  // Megatronics v2.0
 #define BOARD_MEGATRONICS_1     702  // Minitronics v1.0
+#define BOARD_MEGATRONICS_3     703  // Megatronics v3.0
 #define BOARD_OMCA_A            90   // Alpha OMCA board
 #define BOARD_OMCA              91   // Final OMCA board
 #define BOARD_RAMBO             301  // Rambo
diff --git a/Marlin/pins.h b/Marlin/pins.h
index 4ebc460a09eb525fc9d00d9c1e7dab8fd69e7a52..3f11e900b57183842885a0d37098c17e5d764cf3 100644
--- a/Marlin/pins.h
+++ b/Marlin/pins.h
@@ -88,10 +88,12 @@
   #include "pins_GEN3_MONOLITHIC.h"
 #elif MB(MEGATRONICS)
   #include "pins_MEGATRONICS.h"
-#elif MB(MEGATRONICS_2)
-  #include "pins_MEGATRONICS_2.h"
 #elif MB(MEGATRONICS_1)
   #include "pins_MEGATRONICS_1.h"
+#elif MB(MEGATRONICS_2)
+  #include "pins_MEGATRONICS_2.h"
+#elif MB(MEGATRONICS_3)
+  #include "pins_MEGATRONICS_3.h"
 #elif MB(OMCA_A)
   #include "pins_OMCA_A.h"
 #elif MB(OMCA)
diff --git a/Marlin/pins_MEGATRONICS_3.h b/Marlin/pins_MEGATRONICS_3.h
index 064431be29efff89a2a1a7697288e295fb489d05..1ceb89aab5f00f25772be3ca41c9f33dcfb73a64 100644
--- a/Marlin/pins_MEGATRONICS_3.h
+++ b/Marlin/pins_MEGATRONICS_3.h
@@ -1,5 +1,5 @@
 /**
- * MegaTronics v2.0 pin assignments
+ * MegaTronics v3.0 pin assignments
  */
 
 #ifndef __AVR_ATmega2560__
@@ -8,93 +8,79 @@
 
 #define LARGE_FLASH        true
 
-#define X_STEP_PIN 26
-#define X_DIR_PIN 27
-#define X_ENABLE_PIN 25
-#define X_MIN_PIN 37
-#define X_MAX_PIN 40
+#define X_STEP_PIN         58
+#define X_DIR_PIN          57
+#define X_ENABLE_PIN       59
+#define X_MIN_PIN          37
+#define X_MAX_PIN          40   // 2 // Max endstops default to disabled "-1", set to commented value to enable.
 
-#define Y_STEP_PIN 4 // A6
-#define Y_DIR_PIN 54 // A0
-#define Y_ENABLE_PIN 5
-#define Y_MIN_PIN 41
-#define Y_MAX_PIN 38
+#define Y_STEP_PIN         5 // A6
+#define Y_DIR_PIN          17 // A0
+#define Y_ENABLE_PIN       4
+#define Y_MIN_PIN          41
+#define Y_MAX_PIN          38   // 15
 
-#define Z_STEP_PIN 56 // A2
-#define Z_DIR_PIN 60 // A6
-#define Z_ENABLE_PIN 55 // A1
-#define Z_MIN_PIN 18
-#define Z_MAX_PIN 19
+#define Z_STEP_PIN         16 // A2
+#define Z_DIR_PIN          11 // A6
+#define Z_ENABLE_PIN       3 // A1
+#define Z_MIN_PIN          18
+#define Z_MAX_PIN          19
 
-#define E0_STEP_PIN 35
-#define E0_DIR_PIN 36
-#define E0_ENABLE_PIN 34
+#define E0_STEP_PIN        28
+#define E0_DIR_PIN         27
+#define E0_ENABLE_PIN      29
 
-#define E1_STEP_PIN 29
-#define E1_DIR_PIN 39
-#define E1_ENABLE_PIN 28
+#define E1_STEP_PIN        25
+#define E1_DIR_PIN         24
+#define E1_ENABLE_PIN      26
 
-#define E2_STEP_PIN 23
-#define E2_DIR_PIN 24
-#define E2_ENABLE_PIN 22
+#define E2_STEP_PIN        22
+#define E2_DIR_PIN         60
+#define E2_ENABLE_PIN      23
 
 #define SDPOWER -1
 #define SDSS 53
 #define LED_PIN 13
 
-#define FAN_PIN 7
-#define FAN2_PIN 6
 #define PS_ON_PIN 12
 #define KILL_PIN -1
 
-#define HEATER_0_PIN 9 // EXTRUDER 1
-#define HEATER_1_PIN 8 // EXTRUDER 2
-#define HEATER_2_PIN -1
+#define HEATER_0_PIN 2
+#define HEATER_1_PIN 8
+#define HEATER_2_PIN 9
+#define HEATER_BED_PIN 10
+#define FAN_PIN 6
+#define FAN2_PIN 7
 
-#if TEMP_SENSOR_0 == -1
-  #define TEMP_0_PIN 4 // ANALOG NUMBERING
-#else
-  #define TEMP_0_PIN 13 // ANALOG NUMBERING
-#endif
-
-
-#if TEMP_SENSOR_1 == -1
-  #define TEMP_1_PIN 8 // ANALOG NUMBERING
-#else
-  #define TEMP_1_PIN 15 // ANALOG NUMBERING
-#endif
-
-#define TEMP_2_PIN -1 // ANALOG NUMBERING
-
-#define HEATER_BED_PIN 10 // BED
-
-#if TEMP_SENSOR_BED == -1
-  #define TEMP_BED_PIN 8 // ANALOG NUMBERING
-#else
-  #define TEMP_BED_PIN 14 // ANALOG NUMBERING
-#endif
-
-#define BEEPER 64
+#define TEMP_0_PIN   (TEMP_SENSOR_0 == -1 ?  11 : 15) // ANALOG NUMBERING
+#define TEMP_1_PIN   (TEMP_SENSOR_1 == -1 ?  10 : 13) // ANALOG NUMBERING
+#define TEMP_2_PIN   (TEMP_SENSOR_2 == -1 ?   9 : 12) // ANALOG NUMBERING
+#define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING
 
+#define BEEPER 61
 
-#define LCD_PINS_RS 14
-#define LCD_PINS_ENABLE 15
-#define LCD_PINS_D4 30
-#define LCD_PINS_D5 31
-#define LCD_PINS_D6 32
-#define LCD_PINS_D7 33
+#define LCD_PINS_RS 32
+#define LCD_PINS_ENABLE 31
+#define LCD_PINS_D4 14
+#define LCD_PINS_D5 30
+#define LCD_PINS_D6 39
+#define LCD_PINS_D7 15
 
+#define SHIFT_CLK 43
+#define SHIFT_LD 35
+#define SHIFT_OUT 34
+#define SHIFT_EN 44
 
 // Buttons are directly attached using keypad
-#define BTN_EN1 61
-#define BTN_EN2 59
-#define BTN_ENC 43 //the click
+#define BTN_EN1 44
+#define BTN_EN2 45
+#define BTN_ENC 33 // the click
 
 #define BLEN_C 2
 #define BLEN_B 1
 #define BLEN_A 0
 
-#define SDCARDDETECT -1  // Megatronics does not use this port
+#define SDCARDDETECT -1	// Megatronics does not use this port
 
 // Encoder rotation values
 #define encrot0 0