where (and how) does a remote control key (via CEC) get translated before processed by remote.xml?

I’ve tried to get my RC keys remapped in the remote.xml file and finally I had some joy. but the key string that it shows in the cec-client is different to the key label in remote.xml.

eg:
The cec-client reported the key being "backward (4c):
DEBUG: [ 55630] >> TV (0) -> Recorder 1 (1): user control pressed (44)
DEBUG: [ 55630] SetCurrentButton backward (4c) D:0ms cur:4c
DEBUG: [ 55630] key pressed: backward (4c) current(ff) duration(0)
DEBUG: [ 55631] Changed key backward (4c) D:0ms cur:ff
DEBUG: [ 55631] key pressed: backward (4c, 0)
DEBUG: [ 55631] Recorder 1 (1): power status changed from ‘standby’ to ‘on’
DEBUG: [ 55631] making Recorder 1 (1) the active source
NOTICE: [ 55632] >> source activated: Recorder 1 (1)
DEBUG: [ 55632] CheckKeypressTimeout T:2438.197
DEBUG: [ 55632] Key backward: idle (duration:0) (4c) timeout:1991990520ms (rel:499,rep:0,prs:499,rel:0)

but the remote.xml sees it as “skipminus”

and so to get it to do what I wanted, I changed that entry like so:
PreviousMenu

so now, instead of my backward button only functioning as start from beginning in FullScreen Video, I have remapped it to go back to previous menu.

My question is:

Where is the keymap that translates (4c) (or is it the string “backward”? to the key “skipminus”?

in other words, why does the key pressed: backward function as skipminus?
Is there a map of all HEX numbers (4c, 4d, etc) converted to named labels (skipminus, skipplus, etc)?

is there an ANSII like standard for remotes (i.e. 4c = skipminus, 4d = skipplus,…)?