From a DB design standpoint you are correct. Having all this information encoded in some cryptic 3-digit field is a bad design. A better design would be to have a XREF table with all these codes in them. Then in that XRef table you could add your 'cylinders', 'type' (pump, engine, etc - this could actually be another XRef table) etc.
Practically however, making a design change just for the sake of change, even to clean up a database design, is probably going to fail. You will just tick off your users. Unless your users will get some kind of measurable (and significant) benefit out of a design change, making them change the way they do things will generally fail.
As an alternative you could make the design change behind the scenes but let the users keep working the way they work now, so they don't even notice the change. This will be harder to do, but will give you the best of both worlds.