There is a Linux implementation of UDF. I'm sure it can be used as a reference. But this isn't an easy process, is it? The two main difficulties I see are: (1) RISC OS has different interfaces at both ends (i.e. to the upper level and to the hardware); (2) it requires understanding a large body of someone else's code. I don't know about you, but I always have difficulties reading someone else's C or C++.
I would like to be more than lukewarm about it - really I would.