This one uses matching via the plist instead of iterating.
All properties added to the registry is configurable via the plist (look for dictionary entriesToAdd):
Supported types is:
string: will be converted to null terminated string and stored as OSData object.
number: will be converted 32 bit unsigned integer and stored as OSData object.
data: will be stored as is (you need plist editor to enter values as raw data).
This way you can experiment with adding properties you get from ioreg dumps (as far as I can tell, all values are stored as data objects).
To add EDID values like in the new Titan kext, add the properties @0,EDID and @1,EDID as data using the plist editor.
Other than these improvements this doesn't add anything new.
Now that this rewrite is done, I'll go on to exploring the possibility of autodetecting values.
Please report back with any experiences with this new kext, and findings from experimenting with new values and properties.