Don't think of it as "joystick spots" and "button spots" they all are handled the same by the ipac.
Each joystick is going to need 4 inputs, Each button needs 1.
You can share the inputs to mirror the 4 way and 8 way through the same inputs by putting the lead from both sticks into the same terminal like you're saying.
You dont need any more than 4 buttons for 4 player games, and realistically 6 for 2p games (unless you're hooking it up to consoles)
You can use the extra inputs for things like admin buttons (menu, pause, exit, etc.)