Unfortunately, I've somehow wound up catsitting this week (so I'm not at my machine, and can't get at a 64 bit machine until I get back), but my basic plan of action was to clean up the few remaining pointer/integer cast warnings, and move on to persuading a 32 bit build to load save games from a 64 bit build and vice versa (I suspect much comparing of save games in a hex editor).
The large majority of cast warnings are now simply due to menu code storing integers in void pointers (pUserData, declared in widgbase.h and widget.h), which obviously works with pointers larger than the integer type (they're never written to disk), but is generating ~90 warnings.
Other than menu code, there's the animobj/hashtabl code, which is only potentially a problem in that by hashing only half of a pointer on 64 bit systems, it increases the chances of producing identical hashes for different pointer values (my last hashtabl patch should fix that); and game.c, which I'd only just briefly looked at before setting off (but look for values assigned using FIXME_CAST_ASSIGN, they're the ones that're reusing pointers for integer values).
I haven't looked at the netcode yet, as I've been mostly working on getting single player stable (I'd never played the game before I started submitting patches at the beginning of this thread, and would quite like to complete single player)
Current SVN is playable single player on amd64, with a few minor graphical glitches (purple flicker on background in menus while loading/saving, flickering between orange and black background ingame, and occasional 'messed up' walls (looks like polys have mixed up vertices).