I was think more of each letter being declared like this
char letter_a[] =
{
0b00000000,
0b00111100,
0b01000010,
0b01000010,
0b01000010,
0b01111110,
0b01000010,
0b01000010
}
8 bytes per letter instead of 64 bytes per letter.
Combine this with using the ASCII value of the letter as an index to a 2 dimensional array of letters defined as above and the code would be vastly reduced in size.