Hello, The following is based on BizHawk Mupen 64 Core exploration done a while back..

Mupen64 uses its own format for savedata where all savetypes are stacked together into a single file.
To import a save, one needs to hack the raw save data into appropriate offset. I have included the Mupen64 method used for loading save ram and the offsets/file sizes needed.
EXPORT void CALL load_saveram(unsigned char * src)
{
memcpy(eeprom, src, 0x800); --> Size 2048 bytes
memcpy(mempack, src + 0x800, 4 * 0x8000); ---> Size: 131072 + 2048 = 133120 bytes
memcpy(flashram, src + (0x800 + 4 * 0x8000), 0x20000); ---> Size: 131072 + 2048 + 131072= 264192 bytes
memcpy(sram, src + (0x800 + 4 * 0x8000 + 0x20000), 0x8000); --> Size: 2 * 131072 + 2048 + 32768= 296960 bytes
}
One can use it by first creating an empty Mupen64 (stacked) save file and then separating and reconstructing the offsets with eg. gnu head/tail/pipe redirection commands.
Eeprom works just by renaming the raw save file because it is located first in the stacked save file.
The previous is of course after possible byte-swapping.