If you do go shift register, be sure to use TPIC6C595, 100mA sink capability per IO, vs 70mA total for 74HC595.