Numbers to ordinal text?

I'm looking for something like a combination of tc's n2w and ord functions, ie. 3 => "third", 42 => "forty second" etc.

I currently have a very verbose text replacement litany to do this, but I can't help but think there would be an easier way. If not, I would put this forward as a feature request :)

Full text ordinals are currently not available (so you can do 1st but not first), you can open a feature request for that.