PGP messages come in a raw binary format that comprises multiple packets as specified in RFC 4880. There is nothing exciting about the syntax. For instance, every packet in a message consists of a header and a body with the first byte of the header being the header tag, etc. You can dissect a PGP message just like you would with a TCP packet.
What you identified as "one big block of base64" is called an ASCII armor. As the name suggests and @SteffenUllrich pointed out, it protects the message from getting corrupted during transfer by representing it with printable ASCII characters. All it does is base64-wrapping the OpenPGP format.
If you wanted to parse an ASCII armored message you would first base64-decode it and then parse the contained binary stream according to the syntax specification.
From section 2.4 of the RFC:
2.4. Conversion to Radix-64
OpenPGP's underlying native representation for encrypted messages,
signature certificates, and keys is a stream of arbitrary octets.
Some systems only permit the use of blocks consisting of seven-bit,
printable text. For transporting OpenPGP's native raw binary octets
through channels that are not safe to raw binary data, a printable
encoding of these binary octets is needed. OpenPGP provides the
service of converting the raw 8-bit binary octet stream to a stream
of printable ASCII characters, called Radix-64 encoding or ASCII