Where I was coming from with my suggestion of using 3 pins was:
Yes, it SHOULD work with just one pin - BUT it isn't and I'm suspecting a bug - not unheard of - even in Mach
It should work with just one pin because when acting as a limit - i.e. at any time other than when you command "ref all home" all Mach does is react to any limit input by deadstopping all axis - it doesn't care nor need to know which switch was hit - it just dead stops - period.
With a "ref all home" - by default Mach homes each axis SEQUENTIALLY and so again only needs one input. ONE advantage to using 3 pins is that you can (if you want) make Mach home all 3 axis in parallel.
I can't help but think at the moment you're making things more difficult by splitting this accross two threads and also trying to get home offsets sorted at the same time. Personally I'd forget this for the moment and concentrate on getting simple homing to work as it should.
My guess at what is happening is that Mach is homing Z but when it hits the switch its confusing the input as not only a home on Z but ALSO as a limit hit on X and/or Y. Like I say this shouldn't happen but...
From the point of view of homing, everything you've apparantly done is correct and yet it still isn't working. Try 3 pins. If that works then it more or less proves a bug in Mach with one pin. If not I'll take all this back and admit defeat
Cheers
Ian
EDIT: I've just read your other thread again (see what I mean about two threads!) and on post 9 you've said you get a limit message when you home. That confirms (to me at least) that it's a bug as I've said above.