According to the Bitcoin Developer Reference, the block header is 80 bytes total:
BYTES NAME 4 version 32 previous block header hash 32 merkle root hash 4 time 4 nonce
As I understand it, the midstate (1st SHA block) contains 64 bytes of the block header (which fields in particular I do not know, but I do know it doesn’t contain the nonce), and the 2nd SHA block contains the rest, only 80-64 = 16 bytes. Does this mean the 2nd SHA block is padded with 64 – 16 = 48 bytes? If so, why not make the nonce field, for example, 48 – 4 = 42 bytes larger (i.e., 52 bytes instead of 4 bytes)?
That way, extranonce doesn’t have to be in the generation transaction, thereby speeding up hashing, no?