I can't remember the extent to which mmap is on-demand, or if it pre-reads the entire space.
It works on a page basis, so when you read from the virtual memory, a page fault occurs and when the kernel handles it, it sees that this is a file mapping so it reads exactly that page from the file.
If a page isn't used for a while and the physical memory is needed it will be removed from physical memory, meaning if you read the header once and then only other parts, when the memory is needed the header will simply be thrown out and if you try to read it again it is loaded again. This means it is very fast on often read sections and only needs to load sparsely read sections but only discards already read sections under memory pressure.
On Linux if that page is already in the Kernel cache and you only have read access you get direct read access to the kernels cache buffer, meaning it is not even copied, which makes access to often used files pretty fast