diff --git a/Marlin/src/feature/leds/leds.cpp b/Marlin/src/feature/leds/leds.cpp
index d54bd9486e4e973f0e71e0c7e3aad2204ea87811..3a9b724216da3184788f34c46aaad5189c2e8a64 100644
--- a/Marlin/src/feature/leds/leds.cpp
+++ b/Marlin/src/feature/leds/leds.cpp
@@ -71,6 +71,9 @@ void LEDLights::setup() {
   #if ENABLED(NEOPIXEL_LED)
     setup_neopixel();
   #endif
+  #if ENABLED(PCA9533)
+    RGBinit();
+  #endif
   #if ENABLED(LED_USER_PRESET_STARTUP)
     set_default();
   #endif
diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp
index 3b97cb60c1302bab49fc98d5901c6338b9b45bc7..ceb01bfbbcc4e19ae188d1ce70b0053ba6c1dc8f 100644
--- a/Marlin/src/module/tool_change.cpp
+++ b/Marlin/src/module/tool_change.cpp
@@ -750,8 +750,17 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
       const float old_feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : feedrate_mm_s;
       feedrate_mm_s = fr_mm_s > 0.0 ? fr_mm_s : XY_PROBE_FEEDRATE_MM_S;
 
-      #if HAS_SOFTWARE_ENDSTOPS && ENABLED(DUAL_X_CARRIAGE)
-        update_software_endstops(X_AXIS, active_extruder, tmp_extruder);
+      #if HAS_SOFTWARE_ENDSTOPS
+        #if HAS_HOTEND_OFFSET
+          #define _EXT_ARGS , active_extruder, tmp_extruder
+        #else
+          #define _EXT_ARGS
+        #endif
+        update_software_endstops(X_AXIS _EXT_ARGS);
+        #if DISABLED(DUAL_X_CARRIAGE)
+          update_software_endstops(Y_AXIS _EXT_ARGS);
+          update_software_endstops(Z_AXIS _EXT_ARGS);
+        #endif
       #endif
 
       set_destination_from_current();
diff --git a/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h b/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
index 5a4fa42354dfa07d603afe4c3d8e21d0cbab9c70..fdc91bdff896309521195ab14ad1aeff1902f573 100644
--- a/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
+++ b/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
@@ -68,6 +68,16 @@
   #define Z_MIN_PROBE_PIN  42
 #endif
 
+//
+// Filament Runout Pins
+//
+#ifndef FIL_RUNOUT_PIN
+  #define FIL_RUNOUT_PIN   49
+#endif
+#ifndef FIL_RUNOUT2_PIN
+  #define FIL_RUNOUT2_PIN  47
+#endif
+
 //
 // Steppers
 //
@@ -186,143 +196,102 @@
   #endif
 #endif
 
-//
-// Extruder Auto Fan Pins
-//
-#define ORIG_E0_AUTO_FAN_PIN EX1_FAN_PIN
-#define ORIG_E1_AUTO_FAN_PIN EX2_FAN_PIN
-
 //
 // Misc. Functions
 //
 #define LED_PIN            13   // B7
 #define CUTOFF_RESET_PIN   16   // H1
 #define CUTOFF_TEST_PIN    17   // H0
-#define CASE_LIGHT_PIN     44   // L5   MUST BE HARDWARE PWM
 
 //
 // LCD / Controller
 //
-#ifdef REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+#if ENABLED(ULTRA_LCD)
 
-  #define LCD_PINS_RS      33   // C4: LCD-STROBE
-  #define LCD_PINS_ENABLE  72   // J2: LEFT
-  #define LCD_PINS_D4      35   // C2: LCD-CLK
-  #define LCD_PINS_D5      32   // C5: RLED
-  #define LCD_PINS_D6      34   // C3: LCD-DATA
-  #define LCD_PINS_D7      31   // C6: GLED
+  #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
 
-  #define BTN_EN2          75   // J4, UP
-  #define BTN_EN1          73   // J3, DOWN
-  //STOP button connected as KILL_PIN
-  #define KILL_PIN         14   // J1, RIGHT
-  //KILL - not connected
+    #define LCD_PINS_RS    33   // C4: LCD-STROBE
+    #define LCD_PINS_ENABLE 72  // J2: LEFT
+    #define LCD_PINS_D4    35   // C2: LCD-CLK
+    #define LCD_PINS_D5    32   // C5: RLED
+    #define LCD_PINS_D6    34   // C3: LCD-DATA
+    #define LCD_PINS_D7    31   // C6: GLED
 
-  #define BEEPER_PIN        8   // H5, SD_WP
+    #define BTN_EN2        75   // J4, UP
+    #define BTN_EN1        73   // J3, DOWN
+    //STOP button connected as KILL_PIN
+    #define KILL_PIN       14   // J1, RIGHT
+    //KILL - not connected
 
-  #define BTN_CENTER       15   // J0
-  #define BTN_ENC          BTN_CENTER
+    #define BEEPER_PIN      8   // H5, SD_WP
 
-  //on board leds
-  #define STAT_LED_RED_LED  SERVO0_PIN   // C1 (1280-EX1, DEBUG2)
-  #define STAT_LED_BLUE_PIN SERVO1_PIN   // C0 (1280-EX2, DEBUG3)
+    //on board leds
+    #define STAT_LED_RED_LED  SERVO0_PIN   // C1 (1280-EX1, DEBUG2)
+    #define STAT_LED_BLUE_PIN SERVO1_PIN   // C0 (1280-EX2, DEBUG3)
 
-#else
-  // Replicator uses a 3-wire SR controller with HD44780
-  // For now, pretend it's the SAV
-  //
-  //#define FF_INTERFACEBOARD
-
-  #define SR_DATA_PIN      34   // C3
-  #define SR_CLK_PIN       35   // C2
-  #define SR_STROBE_PIN    33   // C4
-
-  #define BTN_UP           75   // J4
-  #define BTN_DWN          73   // J3
-  #define BTN_LFT          72   // J2
-  #define BTN_RT           14   // J1
-  #define BTN_CENTER       15   // J0
-  #define BTN_ENC          BTN_CENTER
+  #else
+    // Replicator uses a 3-wire SR controller with HD44780
+    #define SR_DATA_PIN    34   // C3
+    #define SR_CLK_PIN     35   // C2
+    #define SR_STROBE_PIN  33   // C4
 
-  // Disable encoder
-  #undef BTN_EN1
-  #undef BTN_EN2
+    #define BTN_UP         75   // J4
+    #define BTN_DWN        73   // J3
+    #define BTN_LFT        72   // J2
+    #define BTN_RT         14   // J1
 
-  #define BEEPER_PIN         4   // G5
+    // Disable encoder
+    #undef BTN_EN1
+    #undef BTN_EN2
 
-  #define STAT_LED_RED_PIN  32   // C5
-  #define STAT_LED_BLUE_PIN 31   // C6 (Actually green)
+    #define BEEPER_PIN      4   // G5
 
-#endif
+    #define STAT_LED_RED_PIN  32   // C5
+    #define STAT_LED_BLUE_PIN 31   // C6 (Actually green)
+
+  #endif
+
+  #define BTN_CENTER       15   // J0
+  #define BTN_ENC          BTN_CENTER
+
+#endif // ULTRA_LCD
 
 //
 // SD Card
 //
 #define SDSS               53   // B0
 #define SD_DETECT_PIN       9   // H6
-#define MAX_PIN             THERMO_SCK_PIN
 
 //
-// M3/M4/M5 - Spindle/Laser Control
+//TMC 2208
 //
-#define SPINDLE_LASER_ENA_PIN    66   // K4   Pin should have a pullup!
-#define SPINDLE_LASER_PWM_PIN     8   // H5   MUST BE HARDWARE PWM
-#define SPINDLE_DIR_PIN          67   // K5
-
-
-// Check if all pins are defined in mega/pins_arduino.h
-//#include <Arduino.h>
-static_assert(NUM_DIGITAL_PINS > MAX_PIN, "add missing pins to [arduino dir]/hardware/arduino/avr/variants/mega/pins_arduino.h based on fastio.h"
-                                          "to digital_pin_to_port_PGM, digital_pin_to_bit_mask_PGM, digital_pin_to_timer_PGM, NUM_DIGITAL_PINS, see below");
-
-/* in [arduino dir]/hardware/arduino/avr/variants/mega/pins_arduino.h
-change:
-#define NUM_DIGITAL_PINS            70
-to:
-#define NUM_DIGITAL_PINS            80
-
-to digital_pin_to_port_PGM add at the end:
-const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
-....
-        PG      , // PG 4 ** 70 **
-        PG      , // PG 3 ** 71 **
-        PJ      , // PJ 2 ** 72 **
-        PJ      , // PJ 3 ** 73 **
-        PJ      , // PJ 7 ** 74 **
-        PJ      , // PJ 4 ** 75 **
-        PJ      , // PJ 5 ** 76 **
-        PJ      , // PJ 6 ** 77 **
-        PE      , // PE 2 ** 78 **
-        PE      , // PE 6 ** 79 **
-};
-
-to digital_pin_to_bit_mask_PGM  add at the end:
-const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
-....
-        _BV( 4 )        , // PG 4 ** 70 **
-        _BV( 3 )        , // PG 3 ** 71 **
-        _BV( 2 )        , // PJ 2 ** 72 **
-        _BV( 3 )        , // PJ 3 ** 73 **
-        _BV( 7 )        , // PJ 7 ** 74 **
-        _BV( 4 )        , // PJ 4 ** 75 **
-        _BV( 5 )        , // PJ 5 ** 76 **
-        _BV( 6 )        , // PJ 6 ** 77 **
-        _BV( 2 )        , // PE 2 ** 78 **
-        _BV( 6 )        , // PE 6 ** 79 **
-};
-
-to digital_pin_to_timer_PGM add at the end:
-const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
-....
-        NOT_ON_TIMER    , // PG 4 ** 70 **
-        NOT_ON_TIMER    , // PG 3 ** 71 **
-        NOT_ON_TIMER    , // PJ 2 ** 72 **
-        NOT_ON_TIMER    , // PJ 3 ** 73 **
-        NOT_ON_TIMER    , // PJ 7 ** 74 **
-        NOT_ON_TIMER    , // PJ 4 ** 75 **
-        NOT_ON_TIMER    , // PJ 5 ** 76 **
-        NOT_ON_TIMER    , // PJ 6 ** 77 **
-        NOT_ON_TIMER    , // PE 2 ** 78 **
-        NOT_ON_TIMER    , // PE 6 ** 79 **
-};
-*/
+#if HAS_DRIVER(TMC2208)
+  /**
+   * TMC2208 stepper drivers
+   *
+   * Hardware serial communication ports.
+   * If undefined software serial is used according to the pins below
+   */
+  #define X_HARDWARE_SERIAL Serial2
+  #define Y_HARDWARE_SERIAL Serial1
+
+  /**
+   * Software serial
+   */
+
+  #define X_SERIAL_TX_PIN  16
+  #define X_SERIAL_RX_PIN  17
+
+  #define Y_SERIAL_TX_PIN  18
+  #define Y_SERIAL_RX_PIN  19
+
+  #define Z_SERIAL_TX_PIN  41
+  #define Z_SERIAL_RX_PIN  66
+
+  #define E0_SERIAL_TX_PIN 40
+  #define E0_SERIAL_RX_PIN 67
+
+  #define E1_SERIAL_TX_PIN 37
+  #define E1_SERIAL_RX_PIN 68
+
+#endif
diff --git a/config/examples/FlashForge/CreatorPro/Configuration.h b/config/examples/FlashForge/CreatorPro/Configuration.h
index ec8be7e1e66b280652fa0d4b2cc74353f3bdab40..48c50608d163658b5a0d89effc21cf2ada54780d 100644
--- a/config/examples/FlashForge/CreatorPro/Configuration.h
+++ b/config/examples/FlashForge/CreatorPro/Configuration.h
@@ -124,7 +124,7 @@
  *
  * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
  */
-#define BAUDRATE 115200
+#define BAUDRATE 250000
 
 // Enable the Bluetooth serial interface on AT90USB devices
 //#define BLUETOOTH
@@ -294,8 +294,8 @@
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
 // For the other hotends it is their distance from the extruder 0 hotend.
-#define HOTEND_OFFSET_X {0.0, -33.00} // (mm) relative X-offset for each nozzle
-//#define HOTEND_OFFSET_Y {0.0, 5.00}  // (mm) relative Y-offset for each nozzle
+//#define HOTEND_OFFSET_X {0.0, -34.00} // (mm) relative X-offset for each nozzle
+//#define HOTEND_OFFSET_Y {0.0, 0.00}  // (mm) relative Y-offset for each nozzle
 //#define HOTEND_OFFSET_Z {0.0, 0.00}  // (mm) relative Z-offset for each nozzle
 
 // @section machine
@@ -405,11 +405,11 @@
 //#define TEMP_SENSOR_1_AS_REDUNDANT
 #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
 
-#define TEMP_RESIDENCY_TIME     10  // (seconds) Time to wait for hotend to "settle" in M109
+#define TEMP_RESIDENCY_TIME      0  // (seconds) Time to wait for hotend to "settle" in M109
 #define TEMP_WINDOW              1  // (°C) Temperature proximity for the "temperature reached" timer
 #define TEMP_HYSTERESIS          3  // (°C) Temperature proximity considered "close enough" to the target
 
-#define TEMP_BED_RESIDENCY_TIME 10  // (seconds) Time to wait for bed to "settle" in M190
+#define TEMP_BED_RESIDENCY_TIME  0  // (seconds) Time to wait for bed to "settle" in M190
 #define TEMP_BED_WINDOW          1  // (°C) Temperature proximity for the "temperature reached" timer
 #define TEMP_BED_HYSTERESIS      3  // (°C) Temperature proximity considered "close enough" to the target
 
@@ -452,7 +452,7 @@
   //#define SLOW_PWM_HEATERS      // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
                                   // Set/get with gcode: M301 E[extruder number, 0-2]
-  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
+  #define PID_FUNCTIONAL_RANGE 15 // If the temperature difference between the target temperature and the actual temperature
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 
   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
@@ -699,7 +699,7 @@
  * Override with M203
  *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4[, E5]]]]]
  */
-#define DEFAULT_MAX_FEEDRATE          { 500, 500, 20, 25 }
+#define DEFAULT_MAX_FEEDRATE          { 250, 250, 20, 100 }
 
 /**
  * Default Max Acceleration (change/s) change = mm/s
@@ -707,7 +707,7 @@
  * Override with M201
  *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4[, E5]]]]]
  */
-#define DEFAULT_MAX_ACCELERATION      { 5000, 5000, 100, 80000 }
+#define DEFAULT_MAX_ACCELERATION      { 1000, 1000, 100, 5000 }
 
 /**
  * Default Acceleration (change/s) change = mm/s
@@ -717,9 +717,9 @@
  *   M204 R    Retract Acceleration
  *   M204 T    Travel Acceleration
  */
-#define DEFAULT_ACCELERATION          1750    // X, Y, Z and E max acceleration for printing moves
+#define DEFAULT_ACCELERATION          250    // X, Y, Z and E max acceleration for printing moves
 #define DEFAULT_RETRACT_ACCELERATION  5000    // E acceleration for retracts
-#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration for travel (non printing) moves
+#define DEFAULT_TRAVEL_ACCELERATION   500    // X, Y, Z acceleration for travel (non printing) moves
 
 //
 // Use Junction Deviation instead of traditional Jerk Limiting
@@ -743,7 +743,7 @@
 #define DEFAULT_ZJERK                  0.4
 #endif
 
-#define DEFAULT_EJERK    5.0  // May be used by Linear Advance
+#define DEFAULT_EJERK    2.0  // May be used by Linear Advance
 
 /**
  * S-Curve Acceleration
@@ -970,7 +970,7 @@
 
 //#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
 
-//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
+#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
 
 //#define Z_HOMING_HEIGHT 4  // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
                              // Be sure you have this distance over your Z_MAX_POS in case.
@@ -989,7 +989,7 @@
 #define Y_BED_SIZE 148
 
 // Travel limits (mm) after homing, corresponding to endstop positions.
-#define X_MIN_POS -120
+#define X_MIN_POS -115
 #define Y_MIN_POS -84
 #define Z_MIN_POS 0
 #define X_MAX_POS 152
@@ -1351,11 +1351,11 @@
  *   M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes)
  *   M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.)
  */
-//#define EEPROM_SETTINGS     // Persistent storage with M500 and M501
+#define EEPROM_SETTINGS     // Persistent storage with M500 and M501
 //#define DISABLE_M503        // Saves ~2700 bytes of PROGMEM. Disable for release!
 #define EEPROM_CHITCHAT       // Give feedback on EEPROM commands. Disable to save PROGMEM.
 #if ENABLED(EEPROM_SETTINGS)
-  //#define EEPROM_AUTO_INIT  // Init EEPROM automatically on any errors.
+  #define EEPROM_AUTO_INIT  // Init EEPROM automatically on any errors.
 #endif
 
 //
@@ -1387,13 +1387,13 @@
 
 // Preheat Constants
 #define PREHEAT_1_LABEL       "PLA"
-#define PREHEAT_1_TEMP_HOTEND 180
-#define PREHEAT_1_TEMP_BED     70
+#define PREHEAT_1_TEMP_HOTEND 200
+#define PREHEAT_1_TEMP_BED     50
 #define PREHEAT_1_FAN_SPEED     0 // Value from 0 to 255
 
 #define PREHEAT_2_LABEL       "ABS"
-#define PREHEAT_2_TEMP_HOTEND 240
-#define PREHEAT_2_TEMP_BED    110
+#define PREHEAT_2_TEMP_HOTEND 220
+#define PREHEAT_2_TEMP_BED    100
 #define PREHEAT_2_FAN_SPEED     0 // Value from 0 to 255
 
 /**
@@ -1507,7 +1507,7 @@
  *
  * View the current statistics with M78.
  */
-//#define PRINTCOUNTER
+#define PRINTCOUNTER
 
 //=============================================================================
 //============================= LCD and SD support ============================
@@ -1582,7 +1582,7 @@
  *
  * Use CRC checks and retries on the SD communication.
  */
-//#define SD_CHECK_AND_RETRY
+#define SD_CHECK_AND_RETRY
 
 /**
  * LCD Menu Items
@@ -1637,7 +1637,7 @@
 //
 // Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu.
 //
-//#define INDIVIDUAL_AXIS_HOMING_MENU
+#define INDIVIDUAL_AXIS_HOMING_MENU
 
 //
 // SPEAKER/BUZZER
diff --git a/config/examples/FlashForge/CreatorPro/Configuration_adv.h b/config/examples/FlashForge/CreatorPro/Configuration_adv.h
index 68fc6ad2be41ab69d4600f92a081101673cef28f..2fe25d630854dd348310128f66604962969e523e 100644
--- a/config/examples/FlashForge/CreatorPro/Configuration_adv.h
+++ b/config/examples/FlashForge/CreatorPro/Configuration_adv.h
@@ -215,7 +215,7 @@
 #endif
 
 // Show extra position information in M114
-#define M114_DETAIL
+//#define M114_DETAIL
 
 // Show Temperature ADC value
 // Enable for M105 to include ADC values read from temperature sensors.
@@ -631,7 +631,7 @@
 #define DEFAULT_STEPPER_DEACTIVE_TIME 120
 #define DISABLE_INACTIVE_X true
 #define DISABLE_INACTIVE_Y true
-#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
+#define DISABLE_INACTIVE_Z false  // set to false if the nozzle will fall down on your printed part when print has finished.
 #define DISABLE_INACTIVE_E true
 
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
@@ -820,7 +820,7 @@
 #define DIGIPOT_MCP4018          // Requires library from https://github.com/stawel/SlowSoftI2CMaster
 #define DIGIPOT_I2C_NUM_CHANNELS 5 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
 // Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
-#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }  //  AZTEEG_X3_PRO
+#define DIGIPOT_I2C_MOTOR_CURRENTS { 0.84, 0.84, 0.4, 1.0, 1.0 }  //  AZTEEG_X3_PRO
 
 //===========================================================================
 //=============================Additional Features===========================
@@ -872,16 +872,16 @@
  * LED Control Menu
  * Enable this feature to add LED Control to the LCD menu
  */
-//#define LED_CONTROL_MENU
+#define LED_CONTROL_MENU
 #if ENABLED(LED_CONTROL_MENU)
   #define LED_COLOR_PRESETS                 // Enable the Preset Color menu option
   #if ENABLED(LED_COLOR_PRESETS)
     #define LED_USER_PRESET_RED        255  // User defined RED value
-    #define LED_USER_PRESET_GREEN      128  // User defined GREEN value
-    #define LED_USER_PRESET_BLUE         0  // User defined BLUE value
+    #define LED_USER_PRESET_GREEN      255  // User defined GREEN value
+    #define LED_USER_PRESET_BLUE       255  // User defined BLUE value
     #define LED_USER_PRESET_WHITE      255  // User defined WHITE value
     #define LED_USER_PRESET_BRIGHTNESS 255  // User defined intensity
-    //#define LED_USER_PRESET_STARTUP       // Have the printer display the user preset color on startup
+    #define LED_USER_PRESET_STARTUP       // Have the printer display the user preset color on startup
   #endif
 #endif // LED_CONTROL_MENU
 
@@ -1466,12 +1466,12 @@
                                                   // This short retract is done immediately, before parking the nozzle.
   #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (mm/s) Unload filament feedrate. This can be pretty fast.
   #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
-  #define FILAMENT_CHANGE_UNLOAD_LENGTH      100  // (mm) The length of filament for a complete unload.
+  #define FILAMENT_CHANGE_UNLOAD_LENGTH       80  // (mm) The length of filament for a complete unload.
                                                   //   For Bowden, the full length of the tube and nozzle.
                                                   //   For direct drive, the full length of the nozzle.
                                                   //   Set to 0 for manual unloading.
   #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6  // (mm/s) Slow move when starting load.
-  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
+  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH    80  // (mm) Slow length, to allow time to insert material.
                                                   // 0 to disable start loading and skip to fast load only
   #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6  // (mm/s) Load filament feedrate. This can be pretty fast.
   #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
@@ -1496,10 +1496,10 @@
   #define FILAMENT_CHANGE_ALERT_BEEPS         10  // Number of alert beeps to play when a response is needed.
   #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.
 
-  //#define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
+  #define PARK_HEAD_ON_PAUSE                      // Park the nozzle during pause and filament change.
   //#define HOME_BEFORE_FILAMENT_CHANGE           // Ensure homing has been completed prior to parking for filament change
 
-  #define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
+  #define FILAMENT_LOAD_UNLOAD_GCODES             // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
   //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
 #endif
 
diff --git a/config/examples/FlashForge/CreatorPro/CuraSettings.txt b/config/examples/FlashForge/CreatorPro/CuraSettings.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6b1fcd4ac6066881f12958de333fc9cd1543538b
--- /dev/null
+++ b/config/examples/FlashForge/CreatorPro/CuraSettings.txt
@@ -0,0 +1,157 @@
+NOTE ON FLASHING THE FIRMWARE:
+
+The firmware for the Atmel chip used for USB on the Mighty Board is the same as the Arduino Mega's, but it doesn't do an automatic reset. If you want the printer to reset on DTR you will need to flash it with the firmware for the Arduino Mega.
+
+### Use with all nozzle settings
+
+Build plate shape: Rectangular
+  [X] Origin at center
+  [X] Heated bed
+G-code flavor: Marlin
+
+### Right Nozzle
+
+Number of Extruders: 1
+
+X (Width) 227
+Y (Depth) 148
+Z (Heigth) 150
+
+Extruder 1 - 
+    Nozzle size: 0.4
+    Compatible material diameter: 1.75
+    Nozzle offset X: 0
+    Nozzle offset Y: 0
+    Cooling Fan Number:0
+
+;START G-CODE;
+M104 T0 S{material_print_temperature}
+M140 S{material_bed_temperature}
+G28
+T0
+G1 X150 Y-70 Z30 F4800 ; move to wait position left hand side of the table
+M190 S{material_bed_temperature}
+M109 T0 S{material_print_temperature}
+G92 E0
+G1 Z0.4 F1800
+G1 X110 Y-70 E20 F300 ; purge nozzle
+G1 X120 Y-70 Z0.15 F1200 ; slow wipe
+G1 X110 Y-70 Z0.5 F1200 ; lift
+G92 E0
+;START G-CODE;
+
+;END G-CODE;
+G1 X150 Y75 Z150 F1000 ; send Z axis to bottom of machine
+M140 S0; cool down HBP
+M104 T0 S0 ; cool down right extruder
+M104 T1 S0 ; cool down left extruder
+M127 ; stop blower fan
+M18 ; disable stepper
+;END G-CODE;
+
+***Left Nozzle***
+Number of Extruders: 1
+X (Width) 227
+Y (Depth) 148
+Z (Heigth) 150
+
+Extruder 1 - 
+    Nozzle size: 0.4
+    Compatible material diameter: 1.75
+    Nozzle offset X: -34
+    Nozzle offset Y: 0
+    Cooling Fan Number:0
+
+;START G-CODE;
+M104 S{material_print_temperature}
+M140 S{material_bed_temperature}
+G28
+T1
+G1 X-110 Y-70 Z30 F4800 ; move to wait position left hand side of the table
+M104 S{material_print_temperature}
+M190 S{material_bed_temperature}
+M109 S{material_print_temperature}
+G92 E0
+G1 Z0.4 F1800
+G1 E10 F300 ; purge nozzle
+G1 X-67 Y-70 E25 F300 ; purge nozzle
+G1 X-77 Y-70 Z0.15 F1200 ; slow wipe
+G1 X-67 Y-70 Z0.5 F1200 ; lift
+G92 E0
+;START G-CODE;
+
+;END G-CODE;
+G1 X150 Y75 Z150 F1000 ; send Z axis to bottom of machine
+M140 S0; cool down HBP
+M104 T0 S0 ; cool down right extruder
+M104 T1 S0 ; cool down left extruder
+M127 ; stop blower fan
+M18 ; disable stepper
+;END G-CODE;
+
+***Both Nozzles***
+Number of Extruders: 2
+X (Width) 295 <---- bed width + 2 x nozzle offset
+Y (Depth) 148
+Z (Heigth) 150
+
+Extruder 1 - 
+    Nozzle size: 0.4
+    Compatible material diameter: 1.75
+    Nozzle offset X: 0
+    Nozzle offset Y: 0
+    Cooling Fan Number:0
+    ;Extruder End G-code;
+    G1 X150 Y70 F9000;move away from print in case extrusion cool down speed modifier too low
+    ;Extruder End G-code;
+
+Extruder 2 - 
+    Nozzle size: 0.4
+    Compatible material diameter: 1.75
+    Nozzle offset X: -34
+    Nozzle offset Y: 0
+    Cooling Fan Number:0
+    ;Extruder End G-code;
+    G1 X150 Y70 F9000;move away from print in case extrusion cool down speed modifier too low
+    ;Extruder End G-code;
+
+;START G-CODE;
+M104 T0 S{material_print_temperature, 0}
+M104 T1 S{material_print_temperature , 1}
+M140 S{material_bed_temperature}
+G28
+;purge right
+T0
+G1 X155 Y-70 Z30 F4800
+M190 S{material_bed_temperature}
+M109 T0 S{material_print_temperature, 0}
+M104 T0 S{material_standby_temperature, 0}
+G92 E0
+G1 Z0.4 F1800
+G1 X110 Y-70 E20 F300 ; purge nozzle
+G1 X120 Y-70 Z0.15 F1200 ; slow wipe
+G1 E17 F2400
+G1 X110 Y-70 Z0.5 F1200 ; lift
+G92 E0
+;purge left
+T1
+;M104 T0 S{material_standby_temperature, 0}
+M104 T1 S{material_print_temperature ,1}
+G1 X-110 Y-70 Z30 F4800
+M109 T1 S{material_print_temperature , 1}
+G92 E0
+G1 Z0.4 F1800
+G1 X-67 Y-70 E25 F300 ; purge nozzle
+G1 X-77 Y-70 Z0.15 F1200 ; slow wipe
+G1 E22 F3600
+G1 X-67 Y-70 Z0.5 F1200 ; lift
+G92 E0
+;START G-CODE;
+;END G-CODE;
+G1 X150 Y75 Z150 F1000 ; send Z axis to bottom of machine
+M140 S0; cool down HBP
+M104 T0 S0 ; cool down right extruder
+M104 T1 S0 ; cool down left extruder
+M127 ; stop blower fan
+M18 ; disable stepper
+;END G-CODE;