Encode the backwards alphabet cipher

Given a string of text that contains lowercase letters, encode it as follows: (I will be using abcdef)

• First, encode the alphabet cipher, but this time, 0-indexed. 000102030405
• Reverse it. 504030201000
• Loop through the string.
• If the next two digits together are 25 or smaller, encode those two numbers. 5 04 03 02 01 00 0
• Otherwise, encode one number. f e d c b a a
• Join. fedcbaa

Test cases

abcdef                          fedcbaa
abcdefghijklmnopqrstuvwxyz      fyxwvucjsrqponmlktihgfedcbaa
helloworld                      dbromylloha
ppcg                            gcfpb
codegolf                        fboqedema
programmingpuzzlesandcodegolf   fboqedemddkiobpzuzqdscmkhqerpb


Encoder (not golfed)

Remember, this is , so the code with the fewest bytes wins.

• I get different answers for some of the test cases. For example, codegolf becomes 0214030406141105, reversing to 5011416040304120, split as 5,01,14,16,04,03,04,12,0 turning into fboqedema instead of fbobgedema as you have. – Gabriel Benamy Nov 6 '16 at 23:50
• @GabrielBenamy Fixed. Thank you for telling me. – Oliver Ni Nov 7 '16 at 1:39

Perl, 73 + 2 = 75 bytes

Run with the -lp flag

s/./sprintf"%02d",-97+ord$&/eg;$_=reverse;s/2[0-5]|[01]?[0-9]/chr\$&+97/eg


JavaScript, 126 125 bytes

s=>[...s.replace(/./g,c=>(parseInt(c,36)+90+'').slice(1))].reverse().join.replace(/2[0-5]|[01]?./g,c=>(+c+10).toString(36))


Try it online!