I might be going mad, but I'm sure I saw some funky g-code (somewhere or other) where mach3 would read the g-code & start descending the z axis until the probe pin changed value & then set the Z axis to zero.
My wish is to incorporate such gcode into a machine op 'header' file in CAM software - when I generate the g-code each tool change would have the auto zero g-code incoprated into the main g-code output file. Therefore, when I change a tool, I just simply press run, the new tool will descend until it probes 0 then contnue on with the cycle (which saves the faff of using a manual touch/probe plate)