Cache the propertyMappings in dictionary form by both the destination and source keys, which allows for faster lookup during mapping.  Also, change a couple of CoreData related calls to use the fast-lookup method rather than a method which constructs an entire dictionary to then just look it up by key.  I left the accessor methods as "copy" rather then having immutable dictionaries because those methods are no longer called from the core mapping code (or anywhere else, for that matter).