You could try the more direct approach also, using a 16 to 1 data selector
http://focus.ti.com/lit/ds/symlink/sn74150.pdf
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-26368-5-ND
The module is 'pricey', but its getting hard to find DIP parts to breadboard with:
http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&keywords=74HC4067
Each input will need a pullup resistor, you can buy these in SIP or DIP packages where there is 1 pin going to VCC and the individual 'outputs' connect to a 74150 input and to 1 side of your switch. The other side of the switch goes to ground.
You then take the 6 W outputs and go go thru a 7th 74150 so you just have 1 input to read into the arduino.
You will then need 4 wires to select which of the 16 inputs on layer 1 get fed to layer 2 (the 7th arduino), and 3 wires to select which output comes in to be read.
I can draw up a schematic when I get home.
The 7 lines can come direct from the arduino, or you can use a shift out register and shift out the 8 bits to make a selection. So then you're down to 3 pins. 1 data in, 1 data out, 1 shift clock out.
The hardware method selected would depend on how you want to deal with the data - 96 reads of 1 bit at a time, or shift in 96 bits and break them up into 6 words for further processing.
The 96 reads would also let you pick & choose what you read & when - for example, you might only choose to read switches 3,4,5 if switch 1 was set.
Get some wirewrap socket/pins like these, would assemble pretty quick.
Break up into the needed lengths, tack the ends down, wirewrap away, will go quick once you get the hang of it.
