Correct me if I'm wrong, but 16GB RAM isn't even addressable on a 32bit machine. 32bit address bus == 2^32bytes of addressable memory == 4GB of addressable memory MAX. This includes RAM + Swap.
Yes, Linux can support more then 4GB of ram using Intel's PAE (Physical Address Extension) features PL go through this link http://www.spack.org/index.cgi/LinuxRamLimits for more information