I'll reply here and not in the PDF, hope you don't mind.
First and foremost, there's an error in the Routing tables you have shown. it's impossible to have:
because the two networks are the same (0.x.x.x). moreover, it's not wise to use a "0" as the first byte. It's reserved if I remember right.
And now the questions.
A1: In RipNg the loop checks if the interface is not the loopback *and* if there is a non-link-local address. In IPv4 there's no equivalent concept for link-local, at most you'll have the non-routable address space. We never enforced the use of global Vs non-routable addresses in ns-3, but we don't guarantee that this will not change in the future (i.e., we could add a function to drop packets in routers if they have a non-routable address).
Anyway, 127.0.0.1 is "global" (not really, but we don't really care) and loopback. Tbh I don't even know if there's a function to check if an address is global in IPv4.
A2: yes, you need to create your own packet format. Feel free to borrow an existing one if it fits your needs.
A3: Don't feel dumb for not thinking to it.... CombineMask (!mask) - i.e., use the reverse bit network mask (255.255.255.0 becomes 0.0.0.255).
Cheers,
T.