I would suggest splitting things into multiple cans by groups in such a way that you can have a couple of input expanders in each can and only have ELK databus wiring going between.
There are a lot of people who use 110 / 66 or whatever punchdown blocks, for me i don't see the point..the only real benefit is if you move and you take your alarm with out...however if you label all the wires properly a later alarm installer can figure it out and it saves you time/space/money now. In my setup anything that is hardwired at the 'device side' (i.e. alarm sensors) is directly terminated in the wiring room as well. Anything that is 'plug-in' on the device side (e.g. cat5 outlet or coax outlet in a room) is on a patch panel in the wiring room since clearly these can get re purposed easily and frequently.
I would first group all the inputs into logical groups of 16 to reflect the input expanders:
Group A - Interior (5) + Exterior Doors (24) + Garage doors (2)= 31 >> 2 Input expanders (leaves 1 spare input)
Group B - Windows (19) + Water leak (20) + Glasbreak (10) = 59 >> 4 Input expanders (leaves 5 spare inputs)
I assume the Glassbreaks will be 4 wire so they will need a power supply. Put a terminal strip right below the input expander and for each glass break bend the power one way and the zone input the other way, this should be pretty easy and neat. You could consider a separate expander card for these, but i don't really see the point.
Group C - Occupancy (47) >> 3 Input expander (leaves 1 spare input)
Likely these will all need power as well, so needs extra space for the terminal strips in between.
For all these occupancy sensors you could consider doing the 66 and 110 block solution since it would make the distribution of power to all these devices a lot easier/cleaner. The blocks can be in a can. 3 input expanders and 1 or 2 blocks can certainly fit in a large can.
On M1 Main Control (16 Inputs):
Heat (1) + irrigation (1) + Temp (6) + Furnace (1) = 9 (leaves 7 spares)
Looks like you have 7 outputs so you could just use the ouputs from the main control (no expander needed) although i think typically the location of these outputs make them a bit awkward, you could use a output expander and put it in the can with the main control.
4 Keypads + 9 input expander >> You 2 need 2 Databus hubs.
My guess is that you can put group A & B into a single large (48" or bigger) can easilly IF you manage your wire bundles well and have some come in from the top and some from the bottom.
The rest should easily fit into another large can, or you can separate all the power stuff (looks like you're going to need bunch) into a small can and use a medium (e.g 28") for the main control, outputs and databus hubs.
Initially you may just want to skip group C and use some of the spare inputs on groups A & B to test your occupancy based automation plans before you go all on, if you must then pre-wire it and just label and bundle up the wiring and leave it.
So if you put the medium can (main control) and small can (power) above each other and then have the large can (groups A &
next to it and connect it with some conduit you should be fine.