The Alt-. runs readline function yank-last-arg:
yank-last-arg (M-., M-_)
Insert the last argument to the previous command (the last word of the previ‐ ousprevious history entry). With a numeric argument, behave exactly like yank-nth-arg. Successive calls to yank-last-arg move back through the his‐ tory history list, inserting the last word (or the word specified by the argument to the first call) of each line in turn. Any numeric argument supplied to these successive calls determines the direction to move through the history. A negative argument switches the direction through the history (back or forward). The history expansion facilities are used to extract the last word, as if the "!$" history expansion had been specified.
So to reverse its meaning one has to supply a negative argument to it. This can be done via other functions: digit-argument or universal-argument. The first is easier to use because it is already bound to Alt-[[:digit:]] and Alt-- for negative arguments.
So, to go backward in history run Alt-.. To go forward run Alt-- Alt-. and repeat with just Alt-.. To go backward again, switch directions again with Alt-- Alt-..