Ok, so thanks again for the help everyone. i've been messing with this on and off a few days and while i have a much better understanding of the firmware and compiling it, i'm still at a loss on the homing problem. There are two things that are wrong, first is the endstop signal. Z is inverted, showing triggered (via M119) when not pressed and Open when pressed.

Whether i switch the logic for Z to true or false it never changes, however and Y and X change as would be expected. That said, my original firmware still loads and doesn't have the inverting issue, so i know it's not hardware related.
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.
Are there any other locations to invert the logic of the endstop besides configuration.h?
And my second still remaining problem is that if i home X or Y, Z moves up about 100 steps (ignoring the home flag), then they home properly.
And if Z is homed it just moves indefinitely until it hits something, even if i toggle the still inverted home flag. Any clue on what could cause that?
This is a text file of my Configuration.h
Configuration.h.txt (85.6 KB)