Macroblock MBI5030, is a 16 channel constant current LED driver with PWM output, and a SPI-like interface, it requires external grayscale clock though.
The problem: you need the chip to figure out if your code actually works. And you also need the LEDs to see what’s going on – if at all. You could use a logic analyzer, but that is overkill. Just looking at the LEDs is a much more suitable way. Your code might have insidious bugs, or the datasheet might simply be crap / outdated / obsolete – of course without your knowledge. BUT you surely don’t want to fight wires, at least not during the coding / debugging phase. All you need is the chip + onboard LEDs as indicators.