Good suggestions, wvmarle. But the more I think about this, the more I favour 32 x 74hc165 in a daisy-chain. With SPI at max speed, the Arduino could read this pretty fast. It would be easy and quick for the Arduino to compare the data to the previous read and spot the differences. It's simple & cheap.