The M6 tool change written for Mach (as it is) can do three things - see Config/General Config, top left hand corner.
It can (1) ignore the tool change, (2) stop the spindle and wait for a restart ( which allows you to change the tool etc) or (3) do a complete auto tool change program.
The first two options are programmed into Mach, but the third option can be altered.
It seems to me, however, that if you included a short instruction for the machine to move to your required position, then choose option (2) for the tool change (stop and wait for change manually etc), this would do the trick.
For this you need to write a small Macro - a visual basic program, which you can put in your GCode program, before the M6 instruction. There is a full explanation of this in the instructional videos, under "scripting"
The basic line for Vis Basic is
Code "G0 X0 Y0 Z0"
- if you write this in the Visual Basic editing window (under the operator menu) and save it as, say, M201, then every time you write M201 in your GCode program, Vis Basic will write an instruction G0 X0 Y0 Z0 to your machine. If this was followed by M6, then the spindle would stop and the machine wait for you to change the tool, and set the height.
You can also include in your Macro instructions to collect data from the DRO's before moving, and then return the machine to where it was, after Tool Change.
I think if you watch the video a few times, and do a little bit of experimenting with Vis Basic - i.e. try writing a Macro _ test it without tools in, and with the spindle off - and then come back if you are having a problem.
The difficulty is, as it says in the video, that everybody has a different requirement for a tool change.
I must admit that when I am milling, I usually use the (2) option - stop spindle an wait - jog the z axis up and change the tool, set the height again, and then carry on. It seems quicker to me than waiting for the machine to move about.