Another way to go with this is to use CAT4016 chips, basically a shift register
with constant current outputs, 16 outputs per chip:
http://www.onsemi.com/PowerSolutions/product.do?id=CAT4016W-T1Form one or more serial chains building modules with these chips and drive
them up to 25 Mhz. With a large enough micro, you could drive, say, 16
serial chains at a time, by outputting bytes to two ports and toggling a
clock line.
Or for I2C fans, there's the SAA1064 which can do some light multiplexing:
http://www.nxp.com/#/pip/pip=[pip=SAA1064_CNV]|pp=[t=pip,i=SAA1064_CNV]
But really I'd do this with an FPGA and memory driving the serial chains
and have the micro just update the memory. You could easily do flashing and
fading effects as well with this.
Personally, I've moved away from multiplexing entirely. Too many issues
of insuring your micro doesn't stop and then burn out the LEDs and you
have nasty current spikes and associated noise to deal with. I just drop a
constant current driver near each display (or group of LEDs) and address
them serially and be done with it. Quite failsafe and program bugs just give
you incorrect displays. And you don't have to start switching with MOSFETs
or other such things. Plus the current drivers really help with brightness
matching (more important for 7 segment displays).
My 2 cents.
Scott