These are not any kind of WP’s own format but rather just gettext file types which WP implements.
Translate Handbook has following definitions in its Glossary:
MO files: MO, or Machine Object is a binary data file that contains
object data referenced by a program. It is typically used to translate
program code, and may be loaded or imported into the GNU gettext
program.PO files: PO files are the files which contain the actual
translations. Each language will have its own PO file, for example,
for French there would be a fr.po file, for german there would be a
de.po, for American English there might be en-US.po.POT file: POT files are the template files for PO files. They will
have all the translation strings left empty. A POT file is essentially
an empty PO file without the translations, with just the original
strings.
The technical details of file formats can be found in gettext documentation: