If an user changes the number of hops of his/her Tor client to some non-standard number (i.e. !=3), what nodes and who else in the circuit would know how many hops this client is using?.
I am not sure on this, so someone who knows should confirm or correct, but as I understand, only the client knows, unless you use just a single hop, in which case everybody knows.
It goes like this: The guard relay can see the difference between an incoming connection from a client vs. from another relay. (<--This is this thing I'm not 100% on.) The exit relay obviously knows the difference between an outgoing connection to a final destination vs. to another relay. If the guard relay is the same as the exit relay, then it knows that the number of hops is one.
I'm not sure, if the nodes B connect with C and C connect with D, and if BCD are co-operation, maybe they know your IP address and certainly your number of nodes, I'm not sure