Heavy refactoring for improved mapping, with working D-Pad support