You have obviously been giving it a lot of thought and your last post was one where the light had switched on.
I'll dim it down (a bit) but it might help you even more.
The limit and home switches on Mach3 can all be daisy chained together and used through one input. Use them normally closed as you were going to do, but wire from the pin input through the first switch, then the second, third and so on and then to the supply. In this case ANY switch opening triggers a high input to the pin (i.e. the 0v wire is interrupted and the pull up resistor on the input takes the pin to 5v. (If you are going through a BOB, this might be the other way round).
Does this matter that all are on one wire!!
No - all limits and home switches are shown as using the same pin in your Config/Ports and Pins, and Mach 3 sorts out which one it needs at the time. Limit switches clearly don't matter - a limit is a limit, and should be obvious from the position of the table. The home switches are normally limit switches, BUT, when homing, Mach 3 changes the configuration to suit homing. It knows which axis is homing, and when the signal is received, applies it to that axis.
Thus all your inputs are on one wire, meaning you have four other inputs. I know you said you had a spare port, but why use it if you don't have to - it is just something else to fiddle with. You will need other inputs for spindle control etc.
I think Hood said that the position of your home switches does not matter, my apologies if it was someone else.
The idea of Home switches is not for your benefit, it is for the machines benefit, so the machine knows where it is. It keeps track of all movement in "Machine Co-ordinates". When you home the axis, each axis moves to the switch in turn and zeros the machine code DRO (if you have auto zero turned on). Machine Co-ordinates are displayed when the machine code button light is lit.
Machine Code is of no use for work. The zero position could be anywhere and certainly not where your program starts. For this you need a convenient position on your table, many have a workpiece holder, or similar jig so the work is always in the same place. Milling programs normally have 0,0 on the bottom left of the table (but not always) and Z0 is with the cutter resting on the work.
If (in machine co-ordinates) you jog to this start location, when you get there, note the DRO's. Switch to "Program Co-ordinates" (Press the Machine Co-ords button and the light will go out). Zero the Program Co-ordinates DRO's (These will set to zero, Machine Co-ordinates will not, except when homing).
Your machine is now in a position to start work.
If you noted your Machine Co-ordinates, then this is the offset for that particular start point (or for that particular program), and if you check the Config/Fixtures table, you will find the co-ordinates have been entered in the G54 position (G54 being the default offset if no other is selected).
There are about 255 other offset slots - G55 G56 G57 G58 and G59P7 through to G59P255 or something. You can enter offsets into the table directly, or, if you select the offset first, when you zero the Program Co-ordinates it will be entered automatically. If you include that offset in your program, then the machine will automatically go to the correct position for that program. So all you do is home your machine and run the program.
A bit of a faf if you are doing a one off, but if you are doing a lot, or it is something you do a few of at different times, you can see the benefit. The only thing you must not do after you have entered an offset is zero the program co-ordinates (unless you mean to do so) because this changes the co-ordinates of the selected offset - and you will have to set up again (unless you have it written down).
Jim.