Put in a pointed tool.
Move way from you reference to say1,1, using MDI, G1 X1 Y1 F200.
Line up some mark on a ruler with the point, using a magnifying glass to get it perfect without doing any jogging.
MDI X0 Y0
then MDI X1 Y1. Same place with magnifying glass? Should be.
now X2 Y2
and X1 Y1. Should return to EXACTLY the mark.
Do you have backlash? More than likely. A mechanical problem.
Back to X0 Y0
then X1 Y1. Surprised?
If a cutter has runout it will certainly cut oversize.
The only time to blame Mach3 is if you have backlash compensation on and set incorrectly or you are missing steps because motor tuning is not good.
And it still not the fault of Mach3. Just the setup or the hardware.
Does it have active high clock instead of active low or vice versa.
Important to have have correct clock phase because direction must not change at same time as clock(edge)
This is dependent on the driver setup and breakout configuration.
Set up a loop program:
X1 Y1
X0 Y0
X1 Y1
X0 Y0
X1 Y1
X0 Y0
X1 Y1
X0 Y0
X1 Y1
X0 Y0
X1 Y1
X0 Y0
X1 Y1
Should be the same place.
X2 Y2
X1 Y1
X2 Y2
X1 Y1
X2 Y2
X1 Y1
X2 Y2
X1 Y1
X2 Y2
X1 Y1
X2 Y2
X1 Y1
Same place? complete with error? Identify and fix the mechanical problem.
You can certainly have backlash, and not 'feel' it.
Cut some circles. Ar they PERFECTLY round or have flats (albeit small but usually visible) at the 90 degree points?
Super X3. 3600rpm. Sheridan 6"x24" Lathe + more. Three ways to fix things: The right way, the other way, and maybe your way, which is possibly a faster wrong way.