The statement P->Q can be used to prove that P is false (e.g. "If it were raining, the street would be wet, but the streets are not wet, therefore it's not raining"), but any attempt to prove that P is false would be fallacious (e.g. "If it were raining, the street would be wet, the streets are wet, therefore it's raining" is the fallacy of affirming the consequent.) So if someone says "I know that P->Q is true" in one part of a proof, and later in the proof says "Therefore, P is true", they must have proven P without using the fact that P->Q. That is, if we take the P->Q part out of their proof, their proof would still establish P. So if you claim (P->Q)->P, the only way that's true is if P has already been established. I.e. ((P->Q)->P)->P.
Suppose we have P = "Fluffy is a dog" and Q = "Fluffy is a mammal". Then "P->Q" is "If FLuffy is a dog, then Fluffy is a mammal". Then "(P->Q)-P" means "If Fluffy being a dog means it's a mammal, then Fluffy is a dog". But clearly that's false: if Fluffy is a cat, then "Fluffy being a dog means it's a mammal" is true (if Fluffy were a dog, it would be a mammal), but Fluffy is not a dog.
"((P->Q)-P)->P" can be translated as "The only time we can say 'If Fluffy being a dog means it's a mammal, then Fluffy is a dog' is when Fluffy is a dog". Note that to construct a counterexample for "(P->Q)->P", I had to assume that Fluffy is not a dog (in my example, I considered the possibility that Fluffy is a cat). If Fluffy isn't a dog, then "If Fluffy being a dog means it's a mammal, then Fluffy is a dog" is false. So if "If Fluffy being a dog means it's a mammal, then Fluffy is a dog" is true, then Fluffy is a dog.
"P->Q" is true if Fluffy is a mammal or not a dog. If Fluffy is not a dog, then "P->Q" is true, which means that "(P->Q)->P" has a true premise and a false conclusion, and so is false. So the only way it's true is if Fluffy is a dog. If P is false, then we have alternating truth values:
P : false
P->Q : true (all implications with false premises are true)
(P->Q)->P: false (true premise, false conclusion)
((P->Q)->P)->P: true (false premise)
(((P->Q)->P)->P)->P: false
This alternating pattern can be shown inductively: define S_1 = P and S_n = S(n-1)->P. If n is even, then S_(n-1) is false (inductive hypothesis), so we have a false premise, and thus the statement is true. If n is odd, then S_(n-1) is true, so we have a true premise giving a false conclusion, so the statement is false.
We can also see that once we accept ((P->Q)->P)->P is equivalent to ⊥,, we can simplify further iterations by substituting that in. (((P->Q)->P)->P)->P can simplified to ⊥->P, which is clearly false. But ((((P->Q)->P)->P)->P)->P simplifies to (⊥->P)->P, which is true.