2 x 4 shift registers, max (inefficient solution)

I just did the same recently, with just 2 shift registers and 1 ULN2803, to control up to 128 mulitplexed LEDs.
I kept the data of what was being displayed on the LEDs in an array, and shift it out to the shift registers every 500uS using SPI.transfer()'s.
Whenever serial data comesin, the array is updated between refresh cycles.