I believe the most appropriate way to get the manifest for any bundle (including the bundle which loaded a given class) is to use the Bundle or BundleContext object.
// If you have a BundleContext
Dictionary headers = bundleContext.getBundle().getHeaders();
// If you don't have a context, and are running in 4.2
Bundle bundle = FrameworkUtil.getBundle(this.getClass());
bundle.getHeaders();
Note that the Bundle object also provides getEntry(String path)
to look up resources contained within a specific bundle, rather than searching that bundle's entire classpath.
In general, if you want bundle-specific information, do not rely upon assumptions about the classloaders, just use the OSGi APIs directly.