I thankyou all for helping and attempting toi solve my problem. Im extremely happy to announce that I found the problem.
So apparently the solution was to simply add another line of code for the UV's as shown here:
UVs.put(asFloats2f(m.uvcoord.get((int) face.uv.z - 1)));
I think we can all agree that I have learnt a valuable lesson here though. I know for sure that I will never create another thread again with a reward and that I should be polite to all members despite how I think I should behave. Once again I thankyou all for your help and if i could I would give you all a gold star
Thankyou for teaching me the ways and I apologies for any inconvenience I have caused.