You seem to be mixing virtual and scan codes, and hexadecimal and decimal notation. Also, both columns, VK and SC, are displayed with hexadecimal notation. Consider this:
(I believe the 9th bit position indicates an extended key)
VK_DOWN (DOWN ARROW key)
virtual code = 0x28 (40)
scan code = 0x150
VK_NUMPAD2 (Numeric keypad 2 key)
virtual code = 0x62 (98)
scan code = 0x50 (80)
Code:
SetFormat, Integer, Hex
MsgBox, % DllCall( "MapVirtualKey", "uint", 0x28, "uint", 0 )
MsgBox, % DllCall( "MapVirtualKey", "uint", 0x62, "uint", 0 )