Not that simple. Not only are the vast majority of textures compressed they're organized using a series of tables. Also, the images themselves are raw binaries, so you'll have to interpret the display lists linked to each image table to know exactly how to read them (unless you just fudge it).
Basically, in order to insert anything you have to be able to move everything. You also need to preserve the offsets from certain key table addresses in order for the game to be able to look anything up again.
Here's a proof-of-concept file replacement script to insert the unique Japanese textures into a USA rom:http://pastebin.com/zvxX2SYF
-used to make this patch:http://www.mediafire.com/download/fe1x4t49c9r2fn0/MarioKart64-Jimgs.zip
Besides the table offsets, you also need to know the structure of certain tables to tamper with them and the namespaces they're at (though this does overlap). In the ROM they're at J-0x122DC0, Ja-0x121BF0, E-0x122390, P-0x122570, and Pa-0x122490.
0x0 4 start display lists
0x4 4 end display lists
0x8 4 start vertices
0xC 4 end vertices
0x10 4 start image table
0x14 4 end image table
0x18 4 start DL namespace [0F000000]
0x1C 4 #vertices
0x20 4 offset from vtx ROM address to geometry script
0x24 4 size of scripting
0x28 4 namespace 
0x2C 4 RESERVED
Image table is broken into two parts. The list of images comes first and is NULL-terminated. Note images are shared between tracks, so any change to an image requires changing its entry in every table. Images are not in order.
The list of virtual addresses follow the images are offsets in the display list binary to each display list. Only alter them if the DL is being altered.
Image entries are very simple:
0x0 4 offset in image bank to data
0x4 4 compressed size
0x8 4 decompressed size
0xC 4 RESERVED
Note that the compressed size is the actual binary size and this should be--and will
The offsets to images are relative to the start of the game's image bank. This differs by game, and would be J-0x642940, Ja-0x64D7B0, E-0x641F70, P-0x642170, Pa-642090.
If you wish to resize or change image types, or need to automate sizing and typing for image extraction, you'll have to parse the display list binary found in the table. Offsets to nested display lists are given at the end of the image table.
That's not all the files in the game of course. There's also tables of uncompressed data at 0xDE7F4, compressed data at 0xDEAC0, the TKMK files, and some hardcoded things. Also, certain resources have hardcoded references besides those that appear in the tables, like Latiku. Refer to the python source for a list of all known references that need to be looked at for file replacement.
In general, just look at the python code.
As an example, the "64" logo can be found at 0F000B18 in all games. It's the first image to vary.
J 0x643458 0F000B18 000002BF 00001000 00000000
E 0x642A88 0F000B18 00000567 00001000 00000000