You are 100% correct that you should only be concerned with committed and not used. The way "used" is being computed is not exactly clean. In newer releases, the behavior is supposed to have changed. Take a look at CSCuc40262 for more info.
As far as memory monitoring for IOS-XE goes, the traditional IOS cmds (sh mem stat and show proc mem sorted and such) are fine for tracking memory usage of IOSd. For overall memory usage, the cmd to use would be show platform software status control-processor brief. For SNMP world, ciscoMemoryPoolMib will have info equivalent to "show proc mem sorted) whereas the MIB/object equivalent of show platform software status control-processor brief is cpmCPUMemoryUsed.
Here is an example. IOS-XE node typically have a RP, ESP and a SIP.
Memory used by these individual components are shown below:
As to how these are mapped to the entityMib is learnt here
Here, we see the mapping along with the polled values
entPhysicalDescr.7026 CPU 0 of module R0 .3 in processMIB 1855212
entPhysicalName.7026 cpu R0/0
ASR1000-ESP10 .4 in processMIB 854360
entPhysicalDescr.9026 CPU 0 of module F0
entPhysicalName.9026 cpu F0/0
ASR1000-SIP10 .5 in processMIB 445112
entPhysicalDescr.1026 CPU 0 of module 0
entPhysicalName.1026 cpu 0/0
Here, you will see what the CLI equivalent is telling you:
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
RP0 Healthy 2009868 1855336 (92%) 154532 ( 8%) 1604788 (80%)
ESP0 Healthy 2009892 854360 (43%) 1155532 (57%) 521208 (26%)
SIP0 Healthy 449768 445112 (99%) 4656 ( 1%) 308204 (69%)
As you can see, things are little different with IOS-XE and so, I hope the above is useful to you.
Kind regards ... Palani