I am considering writing a lot of code to handle the different situations,
This design works fine for around up to 4 LEDs at once. However, when I try to light all 16 at once with this strategy, the LEDs are noticeably less brighter (they're on a 1/16 duty cycle after all!).
There are 2 control lines to operate columns (passed to a 2 to 4 demultiplexer) and 4 control lines to operate rows.