For some studies this works really well - clinical trials, for example. But a lot of studies don't fit into a clean "Single experiment to measure a single outcome" paradigm, and pre-registration becomes somewhere between difficult and impossible.
There is: https://clinicaltrials.gov/ I have a vague memory or reading somewhere that if you don't register your desired success condition in the trial ahead of time, even if you find something it's not considered a real result.
That seems like a really good idea, that would solve a lot of problems. Can we do that, please?