pypy's directory cache in ZipImports stores the file names of the contents of the directory differently from cpython. On unix the result is the same. I patched pkg_resources so that it used zipfile instead to get the contents of eggs. It work for me. With some fixes to filename encodings tests on win32 and expected return values in windows based doc tests, passes all the tests from py25-27 and py31-33. I didn't see any place that eggs were deleted from the directory cache so this patch should effectively remove the use of the that variable.
How I came across this, was that on pypy using win32 I couldn't get packages to install properly for doing unit tests for nose2 on win32. Well packages would install but then the installation couldn't be verified and would fail, I think. Turns out that the internal key storage in pypy for the zipimport._zip_directory_cache is actually inconsistent between platforms. I seem to recall trying to work around it for whenever a file was looked up in the cache, but that getting a little hairy, so it seemed cleaner just to query the zip file directly and build a manifest.