x32: allows apps with 32 and 64 bit pointers, without different CPU Modes. You need, for the most part differently compiled libraries for each - x32 and 64bit
amd64: the common 64bit mode, needs 64bit libs
x86: the common 32bit mode, needs 32bit libs (different then x32 libs)
this makes 3 different kinds of libraries, you might have to use if you eg. use x32 and 64bit apps and use some precompiled stuff like Skype.