Character mapping in LEDControlMS.h

Dear forum,
I am having difficulty with understanding the character mapping in the library LEDControlMS.h
See code from the library file:

const static byte alphabetBitmap[41][6]={
{0x7E,0x81,0x81,0x81,0x7E,0x0}, //0
{0x0,0x0,0x4,0x82,0xFF,0x80}, //1
{0xE2,0x91,0x91,0x91,0x8E,0x0},//2
{0x0,0x42,0x89,0x89,0x89,0x76},//3
{0x1F,0x10,0x10,0xFF,0x10,0x0},//4
{0x0,0x8F,0x89,0x89,0x89,0x71},//5
{0x7E,0x89,0x89,0x89,0x71,0x0},//6
{0x1,0x1,0xF9,0x5,0x3,0x0},//7
{0x76,0x89,0x89,0x89,0x76,0x0},//8
{0x0,0x8E,0x91,0x91,0x91,0x7E},//9
{0x0,0x0,0x0,0x0,0x0,0x0},// blank space
{0x0,0x0,0x90,0x0,0x0,0x0}, //:
{0x0,0x10,0x10,0x10,0x10,0x0},// -
{0x0,0x0,0x80,0x0,0x0,0x0},// .
{0xFC,0x9,0x11,0x21,0xFC,0x0},//Ñ
{0xFE,0x11,0x11,0x11,0xFE,0x0},//A
{0xFF,0x89,0x89,0x89,0x76,0x0},//B
{0x7E,0x81,0x81,0x81,0x42,0x0},//C
{0xFF,0x81,0x81,0x81,0x7E,0x0},//D
{0xFF,0x89,0x89,0x89,0x81,0x0},//E
{0xFF,0x9,0x9,0x9,0x1,0x0},//F
{0x7E,0x81,0x81,0x91,0x72,0x0},//G
{0xFF,0x8,0x8,0x8,0xFF,0x0},//H
{0x0,0x81,0xFF,0x81,0x0,0x0},//I
{0x60,0x80,0x80,0x80,0x7F,0x0},//J
{0xFF,0x18,0x24,0x42,0x81,0x0},//K
{0xFF,0x80,0x80,0x80,0x80,0x0},//L
{0xFF,0x2,0x4,0x2,0xFF,0x0},//M
{0xFF,0x2,0x4,0x8,0xFF,0x0},//N
{0x7E,0x81,0x81,0x81,0x7E,0x0},//O
{0xFF,0x11,0x11,0x11,0xE,0x0},//P
{0x7E,0x81,0x81,0xA1,0x7E,0x80},//Q
{0xFF,0x11,0x31,0x51,0x8E,0x0},//R
{0x46,0x89,0x89,0x89,0x72,0x0},//S
{0x1,0x1,0xFF,0x1,0x1,0x0},//T
{0x7F,0x80,0x80,0x80,0x7F,0x0},//U
{0x3F,0x40,0x80,0x40,0x3F,0x0},//V
{0x7F,0x80,0x60,0x80,0x7F,0x0},//W
{0xE3,0x14,0x8,0x14,0xE3,0x0},//X
{0x3,0x4,0xF8,0x4,0x3,0x0},//Y
{0xE1,0x91,0x89,0x85,0x83,0x0}//Z
};

I need to reduce the size and separation of the characters being displayed on MAX7219/UNO controlled matrices but cannot for the life of me understand how the code above relates to the characters so that I can edit properly - could anyone point me in the right direction please?
Thanks
D6

   {0x7E,0x81,0x81,0x81,0x7E,0x0}, //0
0x7E = 0b01111110
0x81 = 0b10000001
0x81 = 0b10000001
0x81 = 0b10000001
0x7E = 0b01111110
0x00 = 0b00000000

All your characters are 6 pixels wide and 8 pixels high. Turn that picture sideways. The ones represent where a pixel is on. The zeros represent where a pixel is off. As you can see, the ones form a nice 0.

Good luck building a font smaller than 6 by 8.

Thank you Paul, that is a great help - I just couldn't see it.
I have the matrices stacked vertically and so reducing from 8x6 to 6x8 will be ideal.
Thanks
again.

D6equj5W:
reducing from 8x6 to 6x8

What reduction do you expext from swapping the x and y axis?

With the font one direction, you can use 6 bytes/character, vs 8 bytes/character.

It's 6 bytes per character now... going to 8 is not a reduction, is it?

5 dots wide x 8 high (so 5 bytes of memory) work nice also for scrolling across a display:

Not a reduction as such but more a squishing and fattening of the characters so they fit better in a vertical run of 8x8 matrices.

So, for the character "2" for example instead of the current {0xE2,0x91,0x91,0x91,0x8E,0x0},//2
I shall use the squat version {0x0,0x1A,0x26,0x22,0x12,0x0},//2
Although by the looks of that it will be upside down although a little tinkering will present it correctly.

Oh my goodness, it took me so long to finally get it... I was just staring at it like "How? How does this make sense?"
And then finally that eureka moment...