Why does my OSX have both 64bit and 32bit JVM's installed if the 64 bit version can interpret/run 32bit class files ?
Because if a specific Java app needs to use a native library, and that native library is 32-bit, then only the 32-bit JVM will work with. Similarly if a 32-bit native program wants to load the JVM to run, then it can load only the 32-bit JVM.
Thus, having both 32-bit and 64-bit JVMs available is useful when working with non-Java code. If your app is pure Java, then it doesn't matter.
BTW, there is no such thing as a "32-bit class file". There is no "bitness" associated with class files and they can be run by JVMs running in any bitness. For example, one of our mainframes uses 48-bit words and and the 48-bit JVM on it runs class files just fine.