Also das Problem beim Multiplexen ist halt, dass der eine Port vom AVR dann immer LEDs einer Spalte parallel versorgen muss - also addieren sich die mA der einzelnen LEDs.
Bei drei LEDS pro Spalte is das noch verkraftbar, aber bei 8 oder mehr nicht mehr. Da muss dann also ein Transistor/Mosfet/Schieberegister als Treiber rein.
Grad bei großen Matrixen ist das sinnvoll, weil man da ja jede Spalte nur 1/n der Zeit an hat - n=Anzahl der Spalten.
Also ist es üblich, die LEDs nicht auf 20mA zu fahren, sondern z.B. auf 60mA oder sogar mehr. So wird der Helligkeitsverlust wieder ausgeglichen.