At the moment, I'm cross-compiling packages on an amd64 for an arm embedded device (which is 32bit), yet files install to 64 bit paths, like: dir /lib64 obj /lib64/libncurses.so.5.6
This is probably because your host's portage profile has all the LIBDIR_* values set. Are these overrideable from the environment?
portage isnt involved in the lib cruft ... this all comes from the profile. if you dont create a portage configroot to the proper profile for your cross-compiling setup, then the development profile is going to bleed crap like the ABI if you dont override them.