Led project

with Shift registers you'll need to provide resistor for every common anode/cathode and transistor banks to supply power

Not necessarily.

Say a 8x8 matrix, you can put the column leds on the mcu's output pins (8), and for the rows, you drive them via hc595 (or hc164). For each display cycle (one column), you present data on the column pins, and then strobe the row just once (one CLK transition), to move to the next column. So you need 8 pins + 3 shift register pins. This approach is very useful for rectangular displays.

If you are short on pins further, you can put the columns on another shift register and you are down to just 3 pins.

I suspect the arduino commity consumes a large percentage of those maxim chips.