Why does a System.Boolean take 4 bytes? It just stores one state, either true or false, which could be stored in less space than 4 bytes.
Where'd you get that? System.Boolean takes only 1 byte.
Just try:
Console.WriteLine( sizeof( System.Boolean ).ToString() );